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

Oddity's profile - activity

2019-03-01 12:40:12 -0500 marked best answer SystemC processor in Gazebo/ROS?

I have to work on a drone which will be controlled by a given processor. I have a SystemC version of the processor, and I'd like to use it to simulate the control of the drone. I was wondering if this could be done in Gazebo. I am familiar with ROS, but I only used it with a raspberry PI in a robot, so I had no custom hardware in the loop.

At the same time, I don't have (yet) any experience in SystemC. According to the person who will provide me with the processor, it is a precise model, to which I provide the SW in binary, and then simulate it for how many ns I want.

So I was wondering, since after all SystemC is a set of C++ classes, would it be possible to integrate this model directly into ROS/Gazebo? So a Gazebo world with a drone in it would take as inputs the commands to the motors (or something like that) from the processor's model, and send back to the model the sensor's readings.

If any of you guys have ever done something like that, I'd be very interested to hear about it! And if not, do you think it is feasible ?

Edit: since this might require some very specific knowledge, I've asked the same question on stackoverflow (robotics) and on the gazebo forum. https://robotics.stackexchange.com/qu... http://answers.gazebosim.org/question...

2019-03-01 12:39:04 -0500 received badge  Famous Question (source)
2018-02-18 06:03:08 -0500 received badge  Notable Question (source)
2018-02-01 11:29:52 -0500 received badge  Popular Question (source)
2018-02-01 08:43:59 -0500 edited question SystemC processor in Gazebo/ROS?

SystemC processor in Gazebo/ROS? I have to work on a drone which will be controlled by a given processor. I have a Syste

2018-02-01 08:43:32 -0500 edited question SystemC processor in Gazebo/ROS?

SystemC processor in Gazebo/ROS? I have to work on a drone which will be controlled by a given processor. I have a Syste

2018-02-01 08:43:32 -0500 received badge  Editor (source)
2018-02-01 07:22:48 -0500 edited question SystemC processor in Gazebo/ROS?

SystemC processor in Gazebo/ROS? I have to work on a drone which will be controlled by a given processor. I have a Syste

2018-02-01 07:21:31 -0500 asked a question SystemC processor in Gazebo/ROS?

SystemC processor in Gazebo/ROS? I have to work on a drone which will be controlled by a given processor. I have a Syste

2017-05-17 04:32:54 -0500 received badge  Famous Question (source)
2017-04-10 21:16:10 -0500 commented question DWA planner failed to produce path

Hello, did you find a fix for this ? I have problems too with the dwa local planner. Most times it fails to produce a path, and otherwise it just spins the robot around...

2017-04-10 09:44:56 -0500 received badge  Notable Question (source)
2017-04-10 09:26:05 -0500 commented answer Known map with undectable obstacles (navigation stack)

And no, the map is not generated by the robot, it is a map that I created with gazebo in which I added the playground and a robot with a laser scanner.

2017-04-10 09:24:47 -0500 commented answer Known map with undectable obstacles (navigation stack)

Do you think I could use 2 map_servers ? One for the localisation with amcl (on which I only put the detectable beacons) and one for the planning (with all the obstacles).

2017-04-10 09:23:59 -0500 commented answer Known map with undectable obstacles (navigation stack)

Thanks for your answer! :) So actually what is going on is that on the playground on which the robot will evolve, there are some obstacles, but their height is around 3 cm. These obstacles are undetectable with the lidar, but must be accounted for in the planning.

2017-04-09 08:08:19 -0500 received badge  Enthusiast
2017-04-09 07:46:49 -0500 received badge  Popular Question (source)
2017-04-07 16:35:12 -0500 commented question Known map with undectable obstacles (navigation stack)

I'm not quite there yet, I'm just trying to understand how the navigation stack works to see if I can use it or if I should re-write everything by myself (I'd rather not). So by the "static map", you talk about the map_server ?

2017-04-06 15:14:07 -0500 commented question Known map with undectable obstacles (navigation stack)

Well that's proof that I didn't quite understand the navigation stack: I tought it embeds a global planner ! On this page it seemed like it: http://wiki.ros.org/navigation/Tutori...

2017-04-05 17:18:56 -0500 received badge  Supporter (source)
2017-04-05 17:17:31 -0500 asked a question Known map with undectable obstacles (navigation stack)

Hi there,

I'm struggling to find how to use existing ROS navigation packages with my robot.

Here's the setup: I have a known map and an RPLidar on my robot, but this lidar is only able to detect some beacons on the edge of the map and the adverse robot.

My problem is that on this known map, there are a lot of obstacles that are close to the ground, which the lidar won't detect, and I'm not sure of how to combine the known map and the map of what that the lidar can actually detect.

So I'm looking for people with knowledge of the navigation stack.

Navigation stack: If I understood well, it doesn't do "internal" localisation, and only uses the LaserScan to detect some obstacles (correct me if I'm wrong). So if I use a map_server with my known map (with all the obstacles), the navigation should be planned according to the obstacles in this map, while avoiding any "additionnal" obstacles (the adverse robot) detected by the Lidar. So what I think I should do is to use the lidar's readings both in the navigation stack (to avoid the "additional" obstacles, so the adverse robot) and in the odometry source (to localise the robot precisely, with the occupancy grid I created), which is not in the navigation stack (I was thinking about using amcl for that).

Is this a correct understanding of how the navigation package works ?

And if this is right, would it be possible to somehow tell the package that the adverse robot that it will detect has a certain size ? Because from what I saw, I can use a parameter "inflation_radius" but I wouldn't like it to affect how the robot will act wrt the "known" obstacles.

One last question, I couldn't quite figure out how to generate my known map (the one with all the obstacles). Should I use the gmapping tool as for the occupancy grid I created for the beacons, but with my lidar placed just above the ground ?

2017-03-26 00:18:11 -0500 received badge  Famous Question (source)
2017-03-16 09:48:05 -0500 received badge  Notable Question (source)
2017-03-15 12:49:19 -0500 received badge  Popular Question (source)
2017-03-15 08:45:14 -0500 asked a question PID: Infinite loop in a ROS listener node?

Hello,

My team and I are participating in the 2017 Eurobot competition, and we are trying to use ROS on our robot. One problem we are facing, is how to write a PID node in ROS. I know there is an available PID node, but with the particular electronics of our robot, it does not seem to be usable in our project.

To be brief, we use a Raspberry pi 3 as Central Unit, which is connected to an FPGA via SPI. The encoders from our motors are connected to the IOs of this FPGA. So the principle of the PID that we use right now is the following: We have an infinite loop which reads (via the SPI) two counters on the FPGA: one for the encoder motor, and one for the elapsed time. Then, with these counters, we compute (on the rpi) the speeds of each motor, and we use the PID to compute the needed command to send to the motors.

So right now, I have written a ROS node which publishes a topic with the desired speed, but I'm struggling to write the PID in a subscriber node. My problem is that in a subscriber node, every time the node reads a command from the topic, it starts a function, but I can't simply copy my current infinite loop in this function, otherwise it will run forever. And if only copy-paste the content of my loop in the function called by the subsciber, the function will only be called once if the publisher node doesn't publish a new desired speed.

So I was wondering if one of you has already faced this problem, and if he/she could help me on this?

Thanks a lot ! =)