Any chance this works with the AR-3?
My use of it has gone in fits and starts, and I'm back to it now. I never got ROS Melodic fully implemented, and now it's so old it's starting to lose compatibility with new equipment like the depth and tracking cameras I'm trying to use...
@duanemclemore It should work with moderate effort. You just need to figure out the differences between AR3 and AR4, and update configs in both the Teensy sketch and the hardware interface. Then you should be able to run the AR3.
wow! that's great!
I'm looking for a URDF file (for MK3, a simple one, just with the joints and limitations) - I saw you have something xarco), but I didnt see any regular urdf. do you have something similar by any chance (and I'm completely newbe, so it might be that I simply didnt see it...) thanks!!
@alon-borenshtein Hi, xacro is a macro format for generating urdf's on the fly. You can do that in the terminal as well, you'll find samples online, here's one https://automaticaddison.com/how-to-convert-a-xacro-file-to-urdf-and-then-to-sdf/
@jann-h oh, thanks 🙂 I knew I still have a lot to learn... thanks for the help! will check this out!
Hey Yifei!
Firstly, thank you very much for all your effort on this. Second, do you have any recommendations on how to 'calibrate & commission' the arm to a user's unique implementation? For example, in the instructions that Chris Annin gives for the AR4-MK3, the commissioning procedure verifies that the motors and encoders are going the right direction, and that the limit switches are acting correctly. I ask this because when I started up the arm today after getting ROS2 working through WSLg, with calibrate:=True the arm started moving in an unexpected way, so I turned off the power. I investigated in RVIZ and the encoders are causing correct movements on some joints, and opposite on others.
Any hints would be appreciated!
I am currently working on bringing up the AR4 MK3 system with ROS 2 Humble and would like to confirm the exact versions being used to ensure compatibility and debug alignment.
Could you please provide me with the following:
The specific version or commit hash of the AR4 driver code you are currently using.
The ROS 2 distribution and version that the AR4 driver has been tested with.
The Arduino sketch version or last updated date for the Teensy controlling the AR4.
The working example of xacro file
Having these details will help me align my environment precisely with your tested configuration, ensuring a smoother debugging and integration process.
Thank you in advance for your assistance.
colcon build
Starting >>> annin_ar4_description
Finished <<< annin_ar4_description [0.88s]
Starting >>> annin_ar4_driver
Starting >>> annin_ar4_moveit_config
Finished <<< annin_ar4_moveit_config [0.90s]
--- stderr: annin_ar4_driver
/home/ravi/ar4_ros_driver_bkkk/annin_ar4_driver/src/ar_servo_gripper_hw_interface.cpp: In member function ‘virtual hardware_interface::CallbackReturn annin_ar4_driver::ARServoGripperHWInterface::on_init(const hardware_interface::HardwareInfo&)’:
/home/ravi/ar4_ros_driver_bkkk/annin_ar4_driver/src/ar_servo_gripper_hw_interface.cpp:21:14: error: ‘struct hardware_interface::HardwareInfo’ has no member named ‘limits’
21 | if (!info_.limits.empty()) {
| ^~~~~~
/home/ravi/ar4_ros_driver_bkkk/annin_ar4_driver/src/ar_servo_gripper_hw_interface.cpp:22:41: error: ‘struct hardware_interface::HardwareInfo’ has no member named ‘limits’
22 | for (const auto& limit_pair : info_.limits) {
| ^~~~~~
gmake[2]: [CMakeFiles/annin_ar4_driver.dir/build.make:90: CMakeFiles/annin_ar4_driver.dir/src/ar_servo_gripper_hw_interface.cpp.o] Error 1
gmake[2]: Waiting for unfinished jobs....
gmake[1]: [CMakeFiles/Makefile2:139: CMakeFiles/annin_ar4_driver.dir/all] Error 2
gmake: [Makefile:146: all] Error 2
---
Failed <<< annin_ar4_driver [9.12s, exited with code 2]
Summary: 2 packages finished [10.5s]
1 package failed: annin_ar4_driver
1 package had stderr output: annin_ar4_driver
1 package not processed
I was getting this error while building main branch, I just blocked that part and continue , is that an issue?
basically everything should compile successfully, so it does look strange.
Anyway, from what I see- it fails on the gripper part, so as long as you don't use it (at least for the beginning, when you try to calibrate the arm) - it should not be a problem. In any case, its strange that 'struct hardware_interface::HardwareInfo’ has no member named ‘limits’', maybe its a matter of ROS version (I strongly recommend to use the same version ycheng517 used, otherwise you might get more similar issues).
Thanks,
Alon.
@dipin don't use the main branch on humble, it won't work even if you get past this build problem. Investigate and fix your limit switches like what Alon said.