ROS RBX1 Integration (Early work)


#1

Good day all,

As I mentioned earlier, I had done some work on using ROS to control the RBX1.
First of all, here’s the git repo: https://github.com/AllainFortier/ROS-RBX1-software

Feel free to dig and do push request if you can make improvements.

The concept here is to be able to plan movements on the main computer then send the movements requests to the RPi to be executed. Most of the information I could think of is included in the README. There will be ways of simplifying the workflow.

What works:

  • Sending simple path to be executed by the arm

What doesn’t:

  • Integrating the gripper in paths
  • Queueing paths in waypoints (always need to home the robot between paths)
  • Tracking path executing. (currently always tells the controller ‘yep, it worked’ even if it didn’t)

Folders:
moveo_ws - contains the workspace that needs to be built by ROS
rbx1 - contains the python source that control the arm. (yes, it’s not my best work and needs some love)

Credit to: https://github.com/jesseweisberg/moveo_ros

There will be questions and I’ll try to help as much as possible.


#2

good stuff mate - currently working on something very similar & will also post the work here when done!


#3

Hi Paul,

One of my issues has been using a SimpleActionServer() to get the commands/goals from the ROS system. At the moment, when I send my feedback to the ROS through the SimpleActionServer(), it doesn’t update the /joint_states which is the current ‘physical’ location of the arm in RViz.

If you solved this issue, please let me know as I’m struggling more than I probably should.

Thank you!


#4

Hi, did you menage to control the speed and acceleration with enough precision to make lineare trajectory yet? Like draw a straight line with the arm? I made my own reverse kinematic solver and it work great for positioning, but there is still no acceleration control. The acceleration must change for every motor at every position incrementation, wich require some kind of integer I guess. Any one found a more simplier way to do this?


#5

I haven’t been able to test the linear movements precisely enough yet.
However, the ROS does give me acceleration and speed information in the trajectory information. I believe I’ll be able to achieve it.

As for the feedback, I found out I had to publish to the /joint_states topic and remove the FakeController from publishing to the topic in the launch file instead. It’s working better now.