merose / diff_drive Goto Github PK
View Code? Open in Web Editor NEWROS nodes for controlling and monitoring a differential drive robot.
License: BSD 3-Clause "New" or "Revised" License
ROS nodes for controlling and monitoring a differential drive robot.
License: BSD 3-Clause "New" or "Revised" License
Need help for use in real robot; this work is amazing; I have a lot of difficult; my rover is rover5 and use ros-motor-romeo-quad; but your mock_robot is complete perfect rover... How I can use my rover?
how to calculate the lwheel_rate and rwheel_rate for odometry?
According to the Autonomous Mobile Robots book, the formula is:
b = - (cur.theta + a)
why in your code it is:
b = cur.theta + a - goal.theta
I understand the sign is changed for simpler Math but why minus the goal.theta?
By the way, I am trying to move the robot (R2D2 [http://wiki.ros.org/urdf/Tutorials/Building%20a%20Visual%20Robot%20Model%20with%20URDF%20from%20Scratch]) but the controlling part for angular velocity is really bad when the robot tries to move to a point behind it. It keeps rotating until it falls down. Do you have any suggestions?
There should be an action server interface for diff_drive_go_to_goal as well as the navigation message interface.
There are parameters for maximum linear and angular acceleration but they are not yet used. This causes a noticeable lurch and possibly jerk to new orientation when the robot starts moving. Need to limit speed changes to keep under the acceleration limits.
If the proportional constants are small enough, the robot can stall before reaching the goal position or orientation. There needs to be a parameter for minimum xVel when the position is not yet achieved, and minimum thetaVel when the position is achieved but not yet the orientation.
Hi, I'm trying to setup a robot using the diff_drive controller. I believe I have my ticks per meter and my wheel seperation setup correctly.
When I compare the /odom output, the linear velocity almost matches the speed i'm sending, but the angular velocity is way off. Should this not match?
I compared the same values on the mock robot, but it didn't match either. Am I missing something fundamental ?
T
Hello,
I was looking at diff_drive as an alternative to http://wiki.ros.org/diff_drive_controller
It seems however that your software works really nice, and easier to implement then diff_drive_controller.
Is the PID done by this controller, or not? I read tru the code and I understand that PID has to be handled by the controller and in terms of encoder ticks?
In terms of comparison and the exception of PID, what could the diff_drive_controller can do that diff_drive can't?
Does this software use other libraries or systems from ros, like controllers perhaps, or is it completely self contained?
Hi,
I just tried to run the demo by following the README instructions after a fresh clone of your repo. Rviz launches fine but the terminal gives the following errors:
[odom_publisher-5] process has died [pid 9672, exit code 1, cmd /home/niambh/Documents/XOXO/project/diff_drive_ws/src/diff_drive/nodes/diff_drive_odometry __name:=odom_publisher __log:=/home/niambh/.ros/log/7bed8d5e-d016-11ea-aa71-4cbb5855c239/odom_publisher-5.log].
log file: /home/niambh/.ros/log/7bed8d5e-d016-11ea-aa71-4cbb5855c239/odom_publisher-5*.log
[diff_drive_go_to_goal-7] process has died [pid 9687, exit code 1, cmd /home/niambh/Documents/XOXO/project/diff_drive_ws/src/diff_drive/nodes/diff_drive_go_to_goal cmd_vel:=/robot/cmd_vel __name:=diff_drive_go_to_goal __log:=/home/niambh/.ros/log/7bed8d5e-d016-11ea-aa71-4cbb5855c239/diff_drive_go_to_goal-7.log].
log file: /home/niambh/.ros/log/7bed8d5e-d016-11ea-aa71-4cbb5855c239/diff_drive_go_to_goal-7*.log
Do you know why this could be happening?
I am using ROS melodic with Ubuntu 18.04.
Still working on a simple way to reproduce, but using the demo launcher when publishing navigation goals poses from rviz the mock robot does not always follow the shortest path, sometimes turning around and backing toward the goal even if forward movement would be more efficient.
No problems found when limited to forward movement.
I'm strugging getting this working. I've copied the demo launch, commented out everything but "robot_state_publisher","joint_state_publisher","controller","odom_publisher". Started it up. Published on /cmd_vel with a maximum x of 1, and I get 0 on /rwheel_desired_rate. I thought that should produce 3000 (==max_motor_speed from the launch file) ticks per second on both left and /rwheel_desired_rate ? I've also tried publishing with large x (==10000) in case I've misunderstanding cmd_vel, but I still can't get the r value to increase. Any help appreciated. Thanks,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.