top of page

Forum Comments

AR3 with ROS and MoveIt
In Robot Builds
raykimber
Apr 30, 2021
Hi, Dexter, thanks again for your ROS and MoveIt packages. After taking a quick ROS course (ROS in 5 days from the Construct (it took more than 5 days 🙄) to get up to speed on the details of ROS, I started to implement your work on my Windows 10 PC running WSL (Windows Subsystem for Linux version 2). I am using ROS Melodic with Ubuntu 18.0.04. Before attempting to control the actual AR3 I set up everything to control the simulation on Gazebo and RViz. This also gave me an opportunity to learn more about MoveIt and Gazebo. I was able to load and run your packages without much difficulty; my lack of experience with ROS and Linux made the effort take longer, but your instructions and files were perfect. Using the Move Group Python Interface I am able to set poses and joints in Python control programs to control the AR3 in Gazebo (a heads-up to others embarking on a ROS path: poses are described in quaternions, not Euler angles). Again, thank you very much for your contribution. Unfortunately, when it came time to set up the control of the real AR3, I ran into some problems. I followed your instructions for setup (COM3, 115200 in the hardware_driver.yaml file), and loaded the baseline_with_ARCS Teensy sketch into the Teensy 3.5. I then tested the new sketch by running ARCS, which worked fine. This seemed to validate the COM3 serial connection to the Teensy. I killed ARCS and the Arduino IDE so there wouldn't be a conflict for COM3. I then followed your instructions for controlling the real-world arm with MoveIt. I downloaded your updated ar3_hardware_bringup.launch file from GitHub and replaced the old one, and launched the file using roslaunch ar3_hardware_interface ar3_hardware_bringup.launch use_existing_calibrations:=true. I got the following errors (warnings): on the stdout: -- [WARN] Failed to connect to serial port -- [rosout][WARNING] 2021-04-29 23:02:47,719: wait_for_service(/controller_manager/load_controller): failed to contact, will keep trying from the master.log (I think this shows that the com parameters were read): -- [rosmaster.master][INFO] 2021-04-29 23:02:47,328: +PARAM [/ar3/hardware_driver/baudrate] by /roslaunch [rosmaster.master][INFO] 2021-04-29 23:02:47,328: +PARAM [/ar3/hardware_driver/serial_port] by /roslaunch from the controller_spawner-2 log: [rosout][WARNING] 2021-04-29 23:03:07,783: wait_for_service(/controller_manager/load_controller): failed to contact, will keep trying [rosout][WARNING] 2021-04-29 23:03:17,807: Controller Spawner couldn't find the expected controller_manager ROS interface. Thinking that "COM3" for the serial port didn't have any meaning in a Linux shell I tried replacing COM3 with ttyS3 and /dev/ttyS3 because I read on the web that with Windows WSL COMn gets mapped to /dev/ttySn on Linux. This didn't make any difference, however. Anyway, I'd appreciate any insight you may have into this trouble, or even if the "failed to connect to serial port" is the cause of the "controller spawner couldn't find the expected controller_manager ROS interface." I don't think I understand these ROS software complexities well enough to troubleshoot much further. Thanks, in advance, Ray Kimber
0
1
MoveIt2 / ROS2 repository for AR3
In General Discussion
raykimber
Feb 01, 2021
I purchased all the kits that Chris Annin offered: aluminum structural parts, hardware, screws and bolts, etc. I also ordered everything he specified in the electrical components (most from Amazon), and the full AR3 stepper motor/driver kit from Stepperonline. I would suggest ordering an extra bag of bolts and screws (roughly $20) in case your first bag is missing something or you lose something. A couple of suggestions for constructing the AR3: 1. there are several steps where you have to fit bearings or bearing races into housings, and because of the close machine tolerances, the fit can be very tight. Inserting one piece slightly crooked can result in the pieces locking, so be very careful. Chris suggested placing one piece in the freezer to shrink it slightly and the other in an oven to expand so the fit is less tight. You need maybe a half hour or so. This really works. Also, I believe holes shrink or expand as the rest of the piece does, which may not seem intuitive. 2. Related to this there's a step on page 183 of the assembly manual - inserting J6 motor into the J6 housing side post - that I think should be done before installing the J6 housing side post (page 166) onto the rest of the arm. In my case in trying to fit the J6 motor into its hole in the housing it got stuck, real bad. Since the housing was assembled, I couldn't heat one and freeze the other. Let's just say that in trying to get the motor unstuck I had to order a new J6 motor. So I put this one into the housing before installing the housing. 3. Joint 3 is prone to a lot of play, which can affect the AR3's accuracy, partially due to gear backlash. But if you're using an un-broached pulley sprocket on the J3 motor shaft, the set screws can only grab so much, so there's slippage. Best to broach the sprockets if you can (I don't have that capability). Chris said he will offer a better redesign of the J3 drive system at some point in the future. 4. For mounting the limit switches I would suggest only using the socket head screws, which use an allen wrench, not the pan head screws, which require a screw driver, unless you have a set of right angle screw drivers to use in tight spaces. You will more than likely need to replace a few limit switches, and you might find that difficult when the AR3 is assembled. I'm not sure if there is a sufficient number of socket head screws to use on all the limit switches, which is all the more reason to buy a second bag of screws. 5. In wiring up the Teensy controller and the +5V wiring read this post for some clarifications: https://www.anninrobotics.com/forum/questions/properly-wiring-the-teensy-the-5vdc-connector-mystery. 6. If you're planning to use a servo gripper rather than a pneumatic one, read this post: https://www.anninrobotics.com/forum/questions/tips-for-using-a-servo-gripper-instead-of-a-pneumatic-one?appSectionParams=%7B%22origin%22%3A%22member_posts_page%22%7D. 7. The +5V power supply doesn't seem to easily mount to the floor of the Enclosure (page 225), so I 3D-printed a substrate for mounting it. If you want the file, let me know. Good luck in your construction. Chris Annin provides very good support along the way.
0
Properly wiring the Teensy - the 5VDC connector mystery
In Questions
raykimber
Dec 07, 2020
Thanks, Chris. I just want to list the specific statements that I sent to you in an email and you confirmed, along with a hand drawn schematic (see below). This may break it down even more so. 1. Both microprocessors (Teensy and Mega) are being powered by the +5V from their respective USB ports. This is labelled +5V/GND. 2. The Teensy +5V powers the GX16-2, which powers all the robot’s encoders and limit switches. The GX16-2 actually connects to the Teensy's Vin pin, but in the Teensy schematic, internally, Vin is connected to the USB's 5V. Additionally, the Teensy's +3.3V output powers the stepper motor drivers’ PUL+ and DIR+ inputs. 3. The Mega’s USB port also provides +5V/GND, but it just powers the Mega board. 4. The 5V power supply provides separate power, labelled +5V1 and GND1. This gets connected to the DIN rail, and powers the relay board. Since I am using a servo gripper instead of a pneumatic one, I will also run this +5V1/GND1 power to a GX16-4 connector dedicated to the gripper. 5. GND1 also gets connected to the Mega board ground, which internally connects it to the GND ground from the USB port. One Question: earlier in this post (e.g., D.D., March 18) the question was raised about whether 3.3V was adequate for inputs to the stepper drivers. Given that the Teensy's 3.3V is derived from the USB's 5V input, and this 5V appears at the Vin pin, could we power the stepper driver inputs from Vin instead of the 3.3V pin, and better meet the specs of the drivers? Thanks, Ray Kimber
Content media
1
0

raykimber

More actions
bottom of page