THE ANNIN ROBOTICS FORUM HAS MOVED TO A NEW COMMUNITY. 👉
ROS 2 Driver for AR...
 
Notifications
Clear all

ROS 2 Driver for AR4 Now Available

25 Posts
11 Users
0 Reactions
415 Views
duanemclemore
(@duanemclemore)
Eminent Member
Joined: 2 months ago
Posts: 16
 

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...



   
ReplyQuote
Yifei Cheng
(@ycheng517)
Eminent Member
Joined: 2 months ago
Posts: 18
Topic starter  

@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.



   
ReplyQuote
Avatar of Alon Borenshtein
(@alon-borenshtein)
Active Member
Joined: 2 months ago
Posts: 8
 

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!!



   
ReplyQuote
Avatar of JannH
(@jann-h)
Eminent Member
Joined: 2 months ago
Posts: 22
 

@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/



   
ReplyQuote
Avatar of Alon Borenshtein
(@alon-borenshtein)
Active Member
Joined: 2 months ago
Posts: 8
 

@jann-h oh, thanks 🙂 I knew I still have a lot to learn... thanks for the help! will check this out!



   
ReplyQuote
Avatar of Joseph Lombardi
(@jplombardi)
New Member
Joined: 2 months ago
Posts: 1
 

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!



   
ReplyQuote
Dipin
(@dipin)
New Member
Joined: 2 months ago
Posts: 2
 

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:

  1. The specific version or commit hash of the AR4 driver code you are currently using.

  2. The ROS 2 distribution and version that the AR4 driver has been tested with.

  3. The Arduino sketch version or last updated date for the Teensy controlling the AR4.

  4. 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.



   
ReplyQuote
Dipin
(@dipin)
New Member
Joined: 2 months ago
Posts: 2
 

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?



   
ReplyQuote
Avatar of Alon Borenshtein
(@alon-borenshtein)
Active Member
Joined: 2 months ago
Posts: 8
 

@dipin

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.



   
ReplyQuote
Yifei Cheng
(@ycheng517)
Eminent Member
Joined: 2 months ago
Posts: 18
Topic starter  

@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.



   
ReplyQuote
Page 2 / 2
Share:
Upload your Photo