Ask Your Question
1

missing link between urdf and rosserial

asked 2012-02-11 09:03:18 -0600

updated 2012-02-11 09:10:20 -0600

Hi, I have an arexx robot arm: http://www.arexx.com/robot_arm/
Following a tutorial, I created an urdf file for my robot arm.
Then I followed the tutorial for the "Planning Description Configuration Wizard". It does the path planning and IK in the simulator nicely.
On the other hand, I followed the rosserial Arduino stuff to make the hardware interface. But I'm missing the link between the two.
My code so far is in : https://github.com/ulrichard/robotloader/tree/master/ros
What is the usual practice to connect from the urdf to the physical robot using rosserial?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2012-03-07 05:05:28 -0600

tfoote gravatar image

When using a URDF you will need to publish joint states from the hardware(aka that's what needs to come from your rosserial devices. And then a tool like robot_state_publisher can help to make it work with the URDF.

edit flag offensive delete link more

Comments

If you just have open loop there's not need to send data through the rosserial process. Just estimate the movement and publish in a simple node based on the commands.

tfoote gravatar imagetfoote ( 2012-03-08 15:27:45 -0600 )edit
-1

answered 2012-03-08 11:14:19 -0600

Did I understand correctly that I have to publish the joint states from the hardware? My robot arm has hobby servos in the joints, so I have only open loop control. Is it required to store the last command in the hardware and publish it as state? Or can I just assume from the ROS side, that the robot is in the position of the last command?

Do I have to subscribe the sensor_msgs/JointState messages matching the urdf in the micro controller directly? Or is it a good idea, to have the python script translate the messages. The python script is a slightly modified version of rosserial. The idea would be to listen for sensor_msgs/JointState messages in a separate thread and translate them to std_msgs/Int16 for the servo commands.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2012-02-11 09:03:18 -0600

Seen: 359 times

Last updated: Mar 08 '12