Giter Club home page Giter Club logo

rrt_exploration's People

Contributors

hasauino avatar svdeepak99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rrt_exploration's Issues

Is it possible to use RRT exploration on ROS noetic?

I would like to use the RRT exploration on ROS noetic, but my mobile robot is not moving anymore. Before I started with noetic I used ROS melodic and evertyhing was great. Is there another issue beside the difference between python 2.7 and python 3. What could create the problem by switching to python 3?

I did an investigation in the filter.py with the debugger in visual code and realized that the centroids array can not save the data from ms.cluster_centers_ (dtype = float64) in the array. Thats why the centroids array is empty and causes issues.

    while not rospy.is_shutdown():
        # -------------------------------------------------------------------------
        # Clustering frontier points
        centroids = []
        front = copy(frontiers)
        if len(front) > 1:
            ms = MeanShift(bandwidth=0.3)
            ms.fit(front)
            centroids = ms.cluster_centers_  # centroids array is the centers of each cluster

        # if there is only one frontier no need for clustering, i.e. centroids=frontiers
        if len(front) == 1:
            centroids = front
        frontiers = copy(centroids)

What could be the solution for that?

Thank you very much! I appreciate your help!

Cannot locate message [points] in package [geometry_msgs]

When I use VScode edit the CamakeLists or other file (But did not chenge anything!) and catkin_make.
Error :

-- +++ processing catkin package: 'rrt_exploration_tutorials'
-- ==> add_subdirectory(rrt_exploration_tutorials)
-- +++ processing catkin package: 'rrt_exploration'
-- ==> add_subdirectory(rrt_exploration)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
CMake Error at /home/ysz/rrt_explore/build/rrt_exploration/cmake/rrt_exploration-genmsg.cmake:3 (message):
Could not find messages which
'/home/ysz/rrt_explore/src/rrt_exploration/msg/PointArray.msg' depends on.
Did you forget to specify generate_messages(DEPENDENCIES ...)?

Cannot locate message [points] in package [geometry_msgs] with paths
[['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg']]
Call Stack (most recent call first):
/opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
rrt_exploration/CMakeLists.txt:24 (generate_messages)

-- Configuring incomplete, errors occurred!
See also "/home/ysz/rrt_explore/build/CMakeFiles/CMakeOutput.log".
See also "/home/ysz/rrt_explore/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

how to save the map after gmapping?

when i run the command ”rosrun map_server map_saver -f //“,but it show waitting for map.i want to shutdown gampping anytime and how to get(or save) the map.thanks

informationGain return 0 always

hi, i try to implement the package on noetic distro, and the issue that i have is that the function informationGain that is use to the condition that clear centroids always give me 0, and the condition 0.0<0.2 delete the centroids always. i use hector_mapping to get the map, i don't think that this be the problem, if you have idea for the reason to the issues I would appreciate.
i think that is for this condition
if(mapData.data[i] == -1 and norm(array(point)-point_of_index(mapData, i)) <= r):
infoGain += 1
but i don't all the process to get the condition.

Client [/mir_auto_bagger] wants topic /move_base/goal to have datatype/md5sum

When I try to run your package with my movile robot an error pops-up:

[ERROR] [1554797108.240628800]: Client [/mir_auto_bagger] wants topic /move_base/goal to have datatype/md5sum [*/8ac6f5411618f50134619b87e4244699], but our version has [move_base_msgs/MoveBaseActionGoal/660d6895a1b9a16dce51fbdd9a64a56b]. Dropping connection.

[move_base_node-2] process has died [pid 6194, exit code -6, cmd /opt/ros/kinetic/lib/move_base/move_base cmd_vel:=mobile_base/commands/velocity __name:=move_base_node __log:=/home/chbloca/.ros/log/ed0463be-5a97-11e9-93e4-94c6911e7b24/move_base_node-2.log]. log file: /home/chbloca/.ros/log/ed0463be-5a97-11e9-93e4-94c6911e7b24/move_base_node-2*.log

Using this launcher in order to make your package work:

<launch>

  <param name="use_sim_time" value="false" />

  <arg name="scan_topic" default="/f_scan" />
  <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">

    <param name="odom_frame" value="odom"/>
    <param name="base_frame" value="base_link"/>
    <param name="map_frame" value="map"/>

    <!-- Process 1 out of every this many scans (set it to a higher number to skip more scans)  -->
    <param name="throttle_scans" value="1"/>

    <param name="map_update_interval" value="2.0"/> <!-- default: 5.0 -->

    <!-- The maximum usable range of the laser. A beam is cropped to this value.  -->
    <param name="maxUrange" value="5.0"/>

    <!-- The maximum range of the sensor. If regions with no obstacles within the range of the sensor should appear as free space in the map, set maxUrange < maximum range of the real sensor <= maxRange -->
    <param name="maxRange" value="10.0"/>

    <param name="sigma" value="0.05"/>
    <param name="kernelSize" value="1"/>
    <param name="lstep" value="0.05"/>
    <param name="astep" value="0.05"/>
    <param name="iterations" value="5"/>
    <param name="lsigma" value="0.075"/>
    <param name="ogain" value="3.0"/>
    <param name="minimumScore" value="0.0"/>
    <!-- Number of beams to skip in each scan. -->
    <param name="lskip" value="0"/>

    <param name="srr" value="0.01"/>
    <param name="srt" value="0.02"/>
    <param name="str" value="0.01"/>
    <param name="stt" value="0.02"/>

    <!-- Process a scan each time the robot translates this far  -->
    <param name="linearUpdate" value="0.1"/>

    <!-- Process a scan each time the robot rotates this far  -->
    <param name="angularUpdate" value="0.05"/>

    <param name="temporalUpdate" value="0.1"/>
    <param name="resampleThreshold" value="0.5"/>

    <!-- Number of particles in the filter. default 30        -->
    <param name="particles" value="10"/>

    <!-- Initial map size  -->
    <param name="xmin" value="-5.0"/>
    <param name="ymin" value="-5.0"/>
    <param name="xmax" value="5.0"/>
    <param name="ymax" value="5.0"/>

    <!-- Processing parameters (resolution of the map)  -->
    <param name="delta" value="0.1"/>

    <param name="llsamplerange" value="0.01"/>
    <param name="llsamplestep" value="0.01"/>
    <param name="lasamplerange" value="0.005"/>
    <param name="lasamplestep" value="0.005"/>

    <remap from="scan" to="$(arg scan_topic)"/>
  </node>

  <arg name="namespace" value=""/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base_node" output="screen">
    <param name="footprint_padding" value="0.01" />
    <param name="controller_frequency" value="5.0" />
    <param name="controller_patience" value="3.0" />
    <param name="oscillation_timeout" value="30.0" />
    <param name="oscillation_distance" value="0.5" />
    <param name="planner_patience" value="1" />
    <param name="controller_patience" value="1" /> 
    <remap from="cmd_vel" to="mobile_base/commands/velocity"/>
    <param name="recovery_behavior_enabled" value="false" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/base_local_planner_params.yaml" command="load" />  
    <param name="global_costmap/global_frame" value="$(arg namespace)/map"/>
    <param name="global_costmap/robot_base_frame" value="$(arg namespace)/base_link"/>
    <param name="global_costmap/laser_scan_sensor/sensor_frame" value="/$(arg namespace)/base_laser_link"/>
    <param name="global_costmap/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>    
    <param name="local_costmap/global_frame" value="$(arg namespace)/odom"/>
    <param name="local_costmap/robot_base_frame" value="$(arg namespace)/base_link"/>
    <param name="local_costmap/laser_scan_sensor/sensor_frame" value="$(arg namespace)/front_laser_link"/>
    <param name="local_costmap/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>
    <param name="local_costmap/obstacle_layer/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>
  </node>

  <node pkg="rviz" type="rviz" name="rviz" args="-d $(find rrt_exploration_tutorials)/launch/includes/rviz_config/simple.rviz">
  </node>

</launch>

Then I proceed with roslaunch rrt_exploration simple.launch.
I have noticed that a way to by-pass this error is to use move_base_simple/goal instead of move_base action. So is it possible for your package in order to be implemented like that way? What node should be modified and how in affirmative case?

Some doubts about the paper and code

Excuse me for a moment. I don't seem to see how the obstacle avoidance logic between robots is implemented in your paper. Can you briefly explain it

Can this package be used along with RTAB-Map?

In the ROSWiki, it is mentioned in section 5 Setting Up Your Robots, that :

And each robot should run the "slam_gmapping" node from the gmapping package.

Does this mean this package would not work for any other mapping algorithm like RTABMap? Or is it that it would work as far as there is a map being published on the /map topic in the form of an occupancy grid?

I wanted to use this package with RTABMap as my VSLAM mapping algorithm. Any help regarding it is appreciated.

TIA

How to launch rrt_exploration package for MiR using simple.launch

Hello Hasauino. I am trying to test your package in an industrial mobile robot as part of my thesis. Here, this device launches the navigation stack automatically so the case is slightly different. I managed to run gmapping and it does without problems. So, at this point as everything is set up properly I am trying to launch your package.

I saw that you made the proper modifications for a unique robot so I don't need to make any modifications and mappings of the topics related with robot_1.

So what I've tried so far the following procedure:

From the mir_robot which provides IP bridging, remapping and removing of topics,... stuff that makes possible a good connection between my computer and the robot.

roslaunch mir_driver mir.launch disable_map:=true

Now I roslaunch this launcher I have created to execute gmapping, rviz and setting use_sim_time = false:

<launch>

  <param name="use_sim_time" value="false" />

  <arg name="scan_topic" default="/f_scan" />

  <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">

    <param name="odom_frame" value="odom"/>
    <param name="base_frame" value="base_link"/>
    <param name="map_frame" value="map"/>

    <!-- Process 1 out of every this many scans (set it to a higher number to skip more scans)  -->
    <param name="throttle_scans" value="1"/>

    <param name="map_update_interval" value="5.0"/> <!-- default: 5.0 -->

    <!-- The maximum usable range of the laser. A beam is cropped to this value.  -->
    <param name="maxUrange" value="5.0"/>

    <!-- The maximum range of the sensor. If regions with no obstacles within the range of the sensor should appear as free space in the map, set maxUrange < maximum range of the real sensor <= maxRange -->
    <param name="maxRange" value="10.0"/>

    <param name="sigma" value="0.05"/>
    <param name="kernelSize" value="1"/>
    <param name="lstep" value="0.05"/>
    <param name="astep" value="0.05"/>
    <param name="iterations" value="5"/>
    <param name="lsigma" value="0.075"/>
    <param name="ogain" value="3.0"/>
    <param name="minimumScore" value="0.0"/>
    <!-- Number of beams to skip in each scan. -->
    <param name="lskip" value="0"/>

    <param name="srr" value="0.01"/>
    <param name="srt" value="0.02"/>
    <param name="str" value="0.01"/>
    <param name="stt" value="0.02"/>

    <!-- Process a scan each time the robot translates this far  -->
    <param name="linearUpdate" value="0.1"/>

    <!-- Process a scan each time the robot rotates this far  -->
    <param name="angularUpdate" value="0.05"/>

    <param name="temporalUpdate" value="0.1"/>
    <param name="resampleThreshold" value="0.5"/>

    <!-- Number of particles in the filter. default 30        -->
    <param name="particles" value="10"/>

    <!-- Initial map size  -->
    <param name="xmin" value="-10.0"/>
    <param name="ymin" value="-10.0"/>
    <param name="xmax" value="10.0"/>
    <param name="ymax" value="10.0"/>

    <!-- Processing parameters (resolution of the map)  -->
    <param name="delta" value="0.02"/>

    <param name="llsamplerange" value="0.01"/>
    <param name="llsamplestep" value="0.01"/>
    <param name="lasamplerange" value="0.005"/>
    <param name="lasamplestep" value="0.005"/>

    <remap from="scan" to="$(arg scan_topic)"/>
  </node>

  <node pkg="rviz" type="rviz" name="rviz" />

</launch>

And finally the last thing I do is:

roslaunch rrt_exploration simple.launch

The problem comes when I try to publish the points in RViz, there won't appear any of them RViz so they won't be published and your algorithm won't run. What am I doing wrong?

No frontier point is detected

Hello,

Once I have followed all the steps indicated on the website to use the RRT exploration algorithm in turtlebot 2, everything runs correctly without giving any error (see attached photos), but the frontier points are not detected. However, I proceeded to make a rostopic echo /detected_points and effectively no information arrived.

To make sure I wasn't doing anything wrong, I installed the rrt_exploration_tutorials package along with the rest of the requirements. I followed all the steps you indicate on the web ( http://wiki.ros.org/rrt_exploration/Tutorials/singleRobot_exploration/Tutorials/singleRobot) and It didn't detect any points either.

Could you please tell me what this may be due to?

Thank you very much in advance

Pd: we are using an Nvidia Jetson TX2

rrt_exploration_1
rrt_exploration_2
rrt_exploration_3

Rviz Tf error - map is not displayed- Need to couple Tf frames - basefootprint and map

Rviz Tf error - map is not displayed- Need to couple Tf frames - basefootprint and map

Hey I corrected the TF map error forcing the Transform. Please who wishes to run this pkg properly must add in the "rrt_exploration_tutorials single_simulated_house.launch" launch file the following snippet line:

node pkg="tf" type="static_transform_publisher" name="basefootprint_broadcaster_to_map" args="0 0 0 0 0 0 1 robot_1/map robot_1/base_footprint 100"

After this you should be able to run it...
Please update your urdf in your github with the right transforms.
Thanks!

Hello, I have a issues when I run multi robots exploration.

Hello, I have a issues when run multi robots exploration.
image
The merged map is not a properly position. And When launch "mutliple_simulated_largeMap.launch", there is always show an error about " not transfer from "word" to "robot1/map" ".

Frontiers not getting detected

@hasauino @svdeepak99
I am trying to use this package on a real robot with ROS melodic but global_detector and local_detector are not publishing anything on topic /detected_points. For every iteration in the main loop, the value of the variable "checking" is coming out to be 0 and sometimes 1 in between but never -1. I have also tried increasing and decreasing the values of eta and Geta by 4 times but it's not making any difference. What is the reason for that?
Here is the rqt_graph
rosgraph

Filter node: Unable to get filtered points

Hello,

I hope you are doing well. I am trying to use your rrt_exploration package in my research with my quadcopter (in Gazebo). I am using ROS Kinetic with an Ubuntu 16.04 Linux machine. I think I have set everything up correctly. You can see my two launch files here and here.

When I run the exploration launch file, all the nodes are initialized as you can see here. After I publish the 5 points in the order you specified, I am able to see the detected points published to the /detected_points topic as you can see here. However, there are no filtered points being published to the /filtered_points topic as you can see here. I realized that the filter node was killed for some reason and that is why I could not get any filtered points (here is the rosnode list after I published the 5 points). As you mentioned in your explanation of the package, the filtered points are sent to the assigner which sends a 2D navigation goal to the robot. I'm not sure why the filter node was killed. If you have any suggestions on how I could fix this issue I would greatly appreciate it. Thank you so much for your time!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.