ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

How should I send a trajectory to an Arduino Robot Arm?

asked 2017-07-21 09:48:08 -0600

BourbonCreams gravatar image

updated 2017-07-22 10:17:50 -0600

NEngelhard gravatar image

Hi all,

I have a Python action server running that gets the planned trajectory from MoveIt and it has to send the trajectory to the real robot - an Arduino Braccio. I found a way to parse the positions in the trajectory and send them one by one to Braccio but it moves in a very clumsy way, stopping between commands. What I want to do is make it move smoothly from the initial position until the goal position along the trajectory received by MoveIt. Here is the code I have so far: braccio_controller.py. It uses this other Python script: moving_braccio_pc.py

Can someone point me what the correct way of giving such commands is?

Thanks in advance

edit retag flag offensive close merge delete

Comments

1

This is just a thought but is the path sent to the robot as a group, or is each portion of the path sent one at a time until the Arduino robot requests the next portion?

JayNewman gravatar image JayNewman  ( 2017-07-22 15:39:49 -0600 )edit

Another possible point of failure is the Arduino robot itself. Have you tried calculating a smooth path in ROS and then manually compiling this path into your Arduino robot with it disconnected from ROS?

JayNewman gravatar image JayNewman  ( 2017-07-22 15:41:37 -0600 )edit

Hi Jay, first of all the robot wasn't the issue because yes, I did try to execute a trajectory outside of ROS and it worked just fine. I was previously sending each portion of the path separately but you gave me the idea of trying to send all of it and the execute it. This worked! Thank you

BourbonCreams gravatar image BourbonCreams  ( 2017-07-26 08:49:59 -0600 )edit

Hi ! Im having the same problem for my custom robotic arm. How do u send all the values at once and receive and decode it at the arduino end? Let me know!

pranavb104 gravatar image pranavb104  ( 2018-12-27 21:14:23 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2017-07-26 08:55:44 -0600

BourbonCreams gravatar image

After JayNewman's comment I tried sending the entire trajectory to the Arduino so that I could store it and then execute it once I received it all. Even though the communication between the two processors (Arduino side and Linux side, both on the board - using Bridge) is quite slow, the trajectory eventually makes it to the Arduino side which then executes the trajectory smoothly.

edit flag offensive delete link more

Comments

Hi ! Im having the same problem for my custom robotic arm. How do u send all the values at once and receive and decode it at the arduino end? Let me know!

pranavb104 gravatar image pranavb104  ( 2018-12-27 21:20:14 -0600 )edit
1

Hi there, have a look at my Github repo for this project: https://github.com/BourbonCreams/brac...

BourbonCreams gravatar image BourbonCreams  ( 2018-12-28 01:49:26 -0600 )edit

Thanks! I got to know how to do it!

pranavb104 gravatar image pranavb104  ( 2018-12-28 20:10:08 -0600 )edit
0

answered 2017-07-22 12:54:55 -0600

achille gravatar image

This is a duplicate of this question. The only way to make smooth motions is to implement a suitable trajectory. Quintic trajectories (5-th order polynomials) will yield the least jerk. The joint_trajectory_controller package is a good place to start.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2017-07-21 09:48:08 -0600

Seen: 1,616 times

Last updated: Jul 26 '17