ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
2023-08-09 12:48:34 -0500 | marked best answer | Convert SDF world made with building editor to URDF I'm using ROS Melodic and Gazebo 9.6.0. I will use Gazebo's Build Editor to build a building using a floor plant image, like this: You can see how it can be done in this video. I'm going to use that world with ROS, but its format will be SDF, and I need a URDF file. Do I need to convert it to URDF or I can use it in SDF format? |
2021-09-10 05:24:06 -0500 | marked best answer | Robot overturn when I controlled with the keyboard I've just started with ROS and Gazebo and I'm learning how and where to implement my code to control a robot in Gazebo. I'm trying to control robot Pioneer 2DX robot in Gazebo using ROS. To do it, I have followed the tutorial: Controlling a differential drive robot in Gazebo from ROS. And to control it with the keyboard, I run this: But, there is a problem, because if I press up key, and then down key the robot overturn: I think, the problem is because the linear velocity changes from 2 to -2. Look: I have decided to modify program My question is: Is this the correct place to do it or do I have to do it in the diff drive plugin? By the way, I'm using this plugin, libgazebo_ros_diff_drive.so, to control the robot. Yes, I know that change linear velocity to 2 to -2 will flip a real robot too. I'm not asking that. |
2021-08-11 04:34:32 -0500 | received badge | ● Famous Question (source) |
2021-07-13 17:02:47 -0500 | marked best answer | Using ROS to control a DYI robotic arm I'm newbie in ROS, I've just started to learn it, and I wondering if I can use ROS to control a real robotic arm like this one: DIY Robot Arm Kit Educational Robotic Claw Set (at gearbest), or the Ebotics BXARM01 robotic arm. Can I use ROS to control it? Note: I don't know if control is right word here because I'm not sure what I'm doing when I create a node in ROS that reads from sensors and sends instructions to actuator. |
2021-06-16 12:47:54 -0500 | received badge | ● Popular Question (source) |
2021-06-16 12:47:54 -0500 | received badge | ● Notable Question (source) |
2021-06-16 12:47:54 -0500 | received badge | ● Famous Question (source) |
2021-05-01 18:18:40 -0500 | received badge | ● Famous Question (source) |
2021-04-28 09:39:01 -0500 | received badge | ● Famous Question (source) |
2021-04-22 09:14:29 -0500 | received badge | ● Famous Question (source) |
2020-12-18 13:29:39 -0500 | marked best answer | Avoid to hit corners using A* algorithm I'm using ROS melodic with Gazebo 9.9.0 on an Ubuntu 18.04.2 LTS. I'm implementing an autonomous node that uses A* algorithm to move a robot from one position to another. The robot will be on a Gazebo World. My problem is when moves on diagonal, sometimes it hits a corner and can not continue moving. For example, I want to move from cell (1,1) to cell(10,12). I'm using an ones and zeros grid that it is represented in Gazebo and I translate the cells into Gazebo world's locations. Moving from (1,1) to (10,12), I get this path: Cell (1,1) is the top most left cell in map. The problem comes when it tries to move from (4,5) to (5,6). In the following picture, the robot is on cell (4,5) facing to cell (5,6), and if it moves, it will hit the corner. The algorithm is doing this: Is there any way to solve this problem or this is a problem attached to A* algorithm? |
2020-10-26 11:17:46 -0500 | received badge | ● Notable Question (source) |
2020-10-18 22:48:01 -0500 | received badge | ● Notable Question (source) |
2020-07-03 10:40:22 -0500 | received badge | ● Famous Question (source) |
2020-06-04 15:51:24 -0500 | received badge | ● Notable Question (source) |
2020-06-04 15:51:24 -0500 | received badge | ● Popular Question (source) |
2020-04-28 01:38:34 -0500 | received badge | ● Famous Question (source) |
2020-03-23 09:00:02 -0500 | received badge | ● Famous Question (source) |
2020-03-08 04:18:56 -0500 | received badge | ● Notable Question (source) |
2020-02-13 00:24:11 -0500 | received badge | ● Famous Question (source) |
2020-02-07 05:06:08 -0500 | received badge | ● Famous Question (source) |
2020-01-12 05:48:19 -0500 | marked best answer | Gazebo ROS package structure I've just started to learn ROS using Lunar distribution on an Ubuntu 16.04. I need to use Gazebo with ROS to do my academic exercises. Reading the Tutorial: Using roslaunch to start Gazebo, world files and URDF models, on section, Creating your own Gazebo ROS Package, I've found this text: "Everything concerning your robot's model and description is located, as per ROS standards, in a package named /MYROBOT_description ..." I have tried to find those ROS standards but I don't know where they are. Is there any standard to add a robot to a ROS package? Where can I find more information about it? |
2020-01-03 04:03:02 -0500 | received badge | ● Famous Question (source) |
2019-12-10 13:51:08 -0500 | received badge | ● Famous Question (source) |
2019-11-16 11:45:01 -0500 | received badge | ● Popular Question (source) |
2019-11-04 20:56:08 -0500 | received badge | ● Famous Question (source) |
2019-11-03 06:38:37 -0500 | received badge | ● Famous Question (source) |
2019-11-01 01:27:25 -0500 | received badge | ● Famous Question (source) |
2019-10-31 10:08:47 -0500 | received badge | ● Notable Question (source) |
2019-10-31 10:08:47 -0500 | received badge | ● Popular Question (source) |
2019-09-19 07:27:09 -0500 | received badge | ● Notable Question (source) |
2019-09-07 01:00:23 -0500 | asked a question | How to know if robot has moved one meter using odometry How to know if robot has moved one meter using odometry I'm working with ROS Melodic and Gazebo 9.9.0 on Ubuntu 18.04.2 |
2019-09-06 09:07:14 -0500 | received badge | ● Notable Question (source) |
2019-09-04 20:59:49 -0500 | received badge | ● Notable Question (source) |
2019-09-04 07:33:59 -0500 | marked best answer | Data structure to store a map while doing it with SLAM I'm studying robotics at the university and I have to implement on my own SLAM algorithm. To do it I will use ROS Melodic, Gazebo 9.1.0 and C++. I have a doubt about what data structure I have to use to store the map (and what I'm going to store it, but this is another story). I have thought to represent the map as a 2D grid and robot's start location is (0,0). But I don't know where exactly is the robot on the world that I have to map. It could be at the top left corner, at the middle of the world, or in any other unknonw location inside the world. Each cell of the grid will be 1x1 meters. I will use a laser to know where are the obstacles. Using current robot's location, I will set to 1 on all the cells that represent an obstacle. For example, it laser detects an obstacle at 2 meters in front of the robot, I will set to 1 the cell at (0,2). Using a vector, or a 2D matrix, here is a problem, because, vector and matrices indices start at 0, and there could be more room behind the robot to map. And that room will have an obstacle at (-1,-3). On this data structure, I will need to store the cells that have an obstacle and the cells that I know they are free. Which kind of data structure will I have to use? UPDATE: The process to store the map will be the following:
the robot will detect the obstacles that are in front of him and to the sides, but never behind it. My problem comes when the robot detects an obstacle on a negative cell (like (0,-1). I don't know how to store that obstacle if I have previously stored only the obstacle on "positive" cells. So, maybe the "offset", it is not a solution here (or maybe I'm wrong). |
2019-09-03 00:46:22 -0500 | asked a question | Make a iteratively using laser data Make a iteratively using laser data I'm using ROS Melodic and Gazebo 9. I'm implementing SLAM algorithm using C++ and I |
2019-08-28 13:22:42 -0500 | received badge | ● Popular Question (source) |
2019-08-27 08:35:05 -0500 | asked a question | Data structure to store a map while doing it with SLAM Data structure to store a map while doing it with SLAM I'm studying robotics at the university and I have to implement o |
2019-08-26 05:13:53 -0500 | received badge | ● Notable Question (source) |
2019-08-13 17:59:13 -0500 | received badge | ● Popular Question (source) |
2019-07-23 05:14:27 -0500 | received badge | ● Popular Question (source) |
2019-07-23 00:34:28 -0500 | marked best answer | Two different nodes getting odometry messages I'm using C++ to program two nodes on ROS melodic with Gazebo 9.9.0 running on an Ubuntu 18.04.2 LTS. I'm learning ROS and I have to do the same: move a robot, Pioneer 2DX, to make a map using Odometry. Yes, I know, there are a lot of better ways to do a map, but I'm learning and this is an exercise that I have to do at the university. I've thought to use two nodes:
My problem, or doubt, is that I need to use Odometry data on both. In the second one, because if I have to rotate the robot, I need to know robot's heading. I'm using My question is: if one node read a Odometry message, that message read from one node, will it be available for the other node? Or maybe, I will lose that message. I've also thought to use one node to store odometry data and also to move the robot if calling |
2019-07-22 11:37:23 -0500 | received badge | ● Popular Question (source) |
2019-07-22 02:29:15 -0500 | commented answer | Two different nodes getting odometry messages Great!!! Thanks a lot. |
2019-07-22 02:19:34 -0500 | received badge | ● Associate Editor (source) |
2019-07-22 02:19:34 -0500 | edited question | Two different nodes getting odometry messages Two different nodes getting odometry messages I'm using C++ to program two nodes on ROS melodic with Gazebo 9.9.0 runnin |
2019-07-22 02:08:28 -0500 | marked best answer | Different between private node handler and not private I'm using ROS melodic and Gazebo 9.9.0 on an Ubuntu 18.04.2 LTS. I've been reading this: http://wiki.ros.org/roscpp/Overview/N..., but I don't understand what is (or are) the different between this two declarations: And What are the different between a private and a not private node handler? |