GithubHelp home page GithubHelp logo

hongbiaoz / autonomous_exploration_development_environment Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jizhang-cmu/ground_based_autonomy_basic

584.0 11.0 169.0 3.36 MB

Leveraging system development and robot deployment for ground-based autonomous navigation and exploration.

CMake 7.58% MATLAB 1.79% C++ 64.75% Python 23.77% C 1.87% Shell 0.23%

autonomous_exploration_development_environment's Introduction

Header

The repository is meant for leveraging system development and robot deployment for ground-based autonomous navigation and exploration. Containing a variety of simulation environments, autonomous navigation modules such as collision avoidance, terrain traversability analysis, waypoint following, etc, and a set of visualization tools, users can develop autonomous navigation systems and later on port those systems onto real robots for deployment.

Please use instructions on our project page.

autonomous_exploration_development_environment's People

Contributors

jizhang-cmu 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

autonomous_exploration_development_environment's Issues

trajectory_timestamp.txt does't exist!

Hello! Sorry for the inconvenience. In my case, I used the melodic_matterport distribution repository,and after i have done everything what the document introductes, I encountered one problem. When I run the command line in my conda environment "python3 habitat_offline_v0.x.x.py --scene extracted_mp3d_habitat_dir/environment_id.glb --trajectory trajectory_file_dir/trajectory_timestamp.txt --save_dir image_saving_dir", the document said that the system records a trajectory_timestamp.txt file in the 'src/vehicle_simulator/log' folder for every run. But in my case, after I run the launch file once, there is no trajectory_timestamp.txt file in my 'src/vehicle_simulator/log' folder. How can I solve this problem?

Question about the world mesh file

Could you let me know how to make the ply file of the gazebo world in the mesh/world_name/preview folder?
i want to change the overallMapVoxelSize but the existing ply's leaf size is too large for me, so that i want to make the ply file again.
I would be very grateful if you could let me know.
If it's secret, can you tell us what tools or open source you used?

thank you!

No rule to make target 'octomap-NOTFOUND'

Hi there! This looks great! But I ran into some problems while building. When I run catkin_make, I get the following error:

[ 53%] Built target terrainAnalysis make[2]: *** No rule to make target 'octomap-NOTFOUND', needed by '/home/duo/ara/external/autonomous_exploration_development_environment/devel/lib/libgazebo_ros_velodyne_laser.so'. Stop. make[1]: *** [CMakeFiles/Makefile2:4097: velodyne_simulator/velodyne_gazebo_plugins/CMakeFiles/gazebo_ros_velodyne_laser.dir/all] Error 2 [ 66%] Built target waypointExample

Any idea what might be causing this issue? I'm on Ubuntu 20.04 using ROS Noetic. Thanks!

Obstacle is ignored when robot moving towards obstacle

obstacleAvoidance.mp4

Hi, thank you for the hard work. I am trying to implement your system in real robot, the waypoint function works great. However, I am facing issue for obstacle avoidance, the obstacle is ignored when the robot move near the obstacle. It can be seen at 0:17 of the video in the link.

I only changed the yawRateGain and maxYawRate, what parameter should I tune to avoid this issue?

how to get boundary_garage.ply file

In the waypointexample.cpp, boundary_garage.ply file is used for program. But I do not find any code generate it? Could you please tell me how to generate this file?

Model[camera/lidar/robot] does not exist

OS : Ubuntu 20.04
ROS version : noetic

I followed the instructions in your website, and I got 0 compilation error

but when I ran the command roslaunch vehicle_simulator system_garage.launch
I got these bunch of errors of Model[camera/lidar/robot] does not exist

I checked the xacro files of these equipment in the folder.
Screenshot from 2024-05-04 19-29-58

I also tested the vehicleSimulator.cpp , it seems the error is caused by these 3 publish operations.

pubModelState.publish(cameraState);
...
pubModelState.publish(robotState);
...
pubModelState.publish(lidarState);

Here's the output.

Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://colleen-XPS-15-9560:42953/

SUMMARY
========

PARAMETERS
 * /camera_description: <?xml version="1....
 * /diagnostic_aggregator/analyzers/PS3State/path: PS3 State
 * /diagnostic_aggregator/analyzers/PS3State/remove_prefix: ps3_joy
 * /diagnostic_aggregator/analyzers/PS3State/startswith: ['Battery', 'Char...
 * /diagnostic_aggregator/analyzers/PS3State/timeout: 5.0
 * /diagnostic_aggregator/analyzers/PS3State/type: diagnostic_aggreg...
 * /diagnostic_aggregator/base_path: 
 * /diagnostic_aggregator/pub_rate: 1.0
 * /diagnostic_aggregator/type: AnalyzerGroup
 * /gazebo/enable_ros_network: True
 * /lidar_description: <?xml version="1....
 * /localPlanner/adjacentRange: 4.25
 * /localPlanner/autonomyMode: True
 * /localPlanner/autonomySpeed: 2.0
 * /localPlanner/checkObstacle: True
 * /localPlanner/checkRotObstacle: False
 * /localPlanner/costHeightThre: 0.1
 * /localPlanner/costScore: 0.02
 * /localPlanner/dirThre: 90.0
 * /localPlanner/dirToVehicle: False
 * /localPlanner/dirWeight: 0.02
 * /localPlanner/goalClearRange: 0.5
 * /localPlanner/goalX: 0.0
 * /localPlanner/goalY: 0.0
 * /localPlanner/groundHeightThre: 0.1
 * /localPlanner/joyToCheckObstacleDelay: 5.0
 * /localPlanner/joyToSpeedDelay: 2.0
 * /localPlanner/laserVoxelSize: 0.05
 * /localPlanner/maxRelZ: 0.25
 * /localPlanner/maxSpeed: 2.0
 * /localPlanner/minPathRange: 1.0
 * /localPlanner/minPathScale: 0.75
 * /localPlanner/minRelZ: -0.5
 * /localPlanner/obstacleHeightThre: 0.15
 * /localPlanner/pathCropByGoal: True
 * /localPlanner/pathFolder: /home/colleen/wor...
 * /localPlanner/pathRangeBySpeed: True
 * /localPlanner/pathRangeStep: 0.5
 * /localPlanner/pathScale: 1.25
 * /localPlanner/pathScaleBySpeed: True
 * /localPlanner/pathScaleStep: 0.25
 * /localPlanner/pointPerPathThre: 2
 * /localPlanner/sensorOffsetX: 0
 * /localPlanner/sensorOffsetY: 0
 * /localPlanner/terrainVoxelSize: 0.2
 * /localPlanner/twoWayDrive: True
 * /localPlanner/useCost: False
 * /localPlanner/useTerrainAnalysis: True
 * /localPlanner/vehicleLength: 0.6
 * /localPlanner/vehicleWidth: 0.6
 * /pathFollower/autonomyMode: True
 * /pathFollower/autonomySpeed: 2.0
 * /pathFollower/dirDiffThre: 0.1
 * /pathFollower/inclRateThre: 120.0
 * /pathFollower/inclThre: 45.0
 * /pathFollower/joyToSpeedDelay: 2.0
 * /pathFollower/lookAheadDis: 0.5
 * /pathFollower/maxAccel: 2.5
 * /pathFollower/maxSpeed: 2.0
 * /pathFollower/maxYawRate: 90.0
 * /pathFollower/noRotAtGoal: True
 * /pathFollower/noRotAtStop: False
 * /pathFollower/pubSkipNum: 1
 * /pathFollower/sensorOffsetX: 0
 * /pathFollower/sensorOffsetY: 0
 * /pathFollower/slowDwnDisThre: 0.85
 * /pathFollower/slowRate1: 0.25
 * /pathFollower/slowRate2: 0.5
 * /pathFollower/slowTime1: 2.0
 * /pathFollower/slowTime2: 2.0
 * /pathFollower/stopDisThre: 0.2
 * /pathFollower/stopTime: 5.0
 * /pathFollower/stopYawRateGain: 7.5
 * /pathFollower/switchTimeThre: 1.0
 * /pathFollower/twoWayDrive: True
 * /pathFollower/useInclRateToSlow: False
 * /pathFollower/useInclToStop: False
 * /pathFollower/yawRateGain: 7.5
 * /ps3_joy/deadzone: 0.12
 * /ps3_joy/dev: /dev/input/js0
 * /robot_description: <?xml version="1....
 * /rosdistro: noetic
 * /rosversion: 1.16.0
 * /terrainAnalysis/absDyObsRelZThre: 0.2
 * /terrainAnalysis/clearDyObs: True
 * /terrainAnalysis/clearingDis: 8.0
 * /terrainAnalysis/considerDrop: True
 * /terrainAnalysis/decayTime: 2.0
 * /terrainAnalysis/disRatioZ: 0.2
 * /terrainAnalysis/limitGroundLift: False
 * /terrainAnalysis/maxDyObsVFOV: 16.0
 * /terrainAnalysis/maxGroundLift: 0.15
 * /terrainAnalysis/maxRelZ: 1.0
 * /terrainAnalysis/minBlockPointNum: 10
 * /terrainAnalysis/minDyObsAngle: 0.0
 * /terrainAnalysis/minDyObsDis: 0.3
 * /terrainAnalysis/minDyObsPointNum: 1
 * /terrainAnalysis/minDyObsRelZ: -0.5
 * /terrainAnalysis/minDyObsVFOV: -16.0
 * /terrainAnalysis/minRelZ: -2.5
 * /terrainAnalysis/noDataBlockSkipNum: 0
 * /terrainAnalysis/noDataObstacle: False
 * /terrainAnalysis/noDecayDis: 4.0
 * /terrainAnalysis/quantileZ: 0.25
 * /terrainAnalysis/scanVoxelSize: 0.05
 * /terrainAnalysis/useSorting: False
 * /terrainAnalysis/vehicleHeight: 1.5
 * /terrainAnalysis/voxelPointUpdateThre: 100
 * /terrainAnalysis/voxelTimeUpdateThre: 2.0
 * /terrainAnalysisExt/ceilingFilteringThre: 2.0
 * /terrainAnalysisExt/checkTerrainConn: False
 * /terrainAnalysisExt/clearingDis: 30.0
 * /terrainAnalysisExt/decayTime: 10.0
 * /terrainAnalysisExt/disRatioZ: 0.1
 * /terrainAnalysisExt/localTerrainMapRadius: 4.0
 * /terrainAnalysisExt/lowerBoundZ: -2.5
 * /terrainAnalysisExt/noDecayDis: 0.0
 * /terrainAnalysisExt/quantileZ: 0.1
 * /terrainAnalysisExt/scanVoxelSize: 0.1
 * /terrainAnalysisExt/terrainConnThre: 0.5
 * /terrainAnalysisExt/terrainUnderVehicle: -0.75
 * /terrainAnalysisExt/upperBoundZ: 1.0
 * /terrainAnalysisExt/useSorting: False
 * /terrainAnalysisExt/vehicleHeight: 1.5
 * /terrainAnalysisExt/voxelPointUpdateThre: 100
 * /terrainAnalysisExt/voxelTimeUpdateThre: 2.0
 * /use_sim_time: True
 * /vehicleSimulator/InclFittingThre: 0.2
 * /vehicleSimulator/adjustIncl: True
 * /vehicleSimulator/adjustZ: True
 * /vehicleSimulator/cameraOffsetZ: 0
 * /vehicleSimulator/groundHeightThre: 0.1
 * /vehicleSimulator/maxIncl: 30.0
 * /vehicleSimulator/minTerrainPointNumIncl: 200
 * /vehicleSimulator/minTerrainPointNumZ: 5
 * /vehicleSimulator/sensorOffsetX: 0
 * /vehicleSimulator/sensorOffsetY: 0
 * /vehicleSimulator/smoothRateIncl: 0.5
 * /vehicleSimulator/smoothRateZ: 0.5
 * /vehicleSimulator/terrainRadiusIncl: 2.0
 * /vehicleSimulator/terrainRadiusZ: 1.0
 * /vehicleSimulator/terrainVoxelSize: 0.05
 * /vehicleSimulator/terrainZ: 0
 * /vehicleSimulator/use_gazebo_time: False
 * /vehicleSimulator/vehicleHeight: 0.75
 * /vehicleSimulator/vehicleX: 0
 * /vehicleSimulator/vehicleY: 0
 * /vehicleSimulator/vehicleYaw: 0
 * /vehicleSimulator/vehicleZ: 0
 * /visualizationTools/exploredAreaDisplayInterval: 1
 * /visualizationTools/exploredAreaVoxelSize: 0.3
 * /visualizationTools/exploredVolumeVoxelSize: 0.5
 * /visualizationTools/mapFile: /home/colleen/wor...
 * /visualizationTools/metricFile: /home/colleen/wor...
 * /visualizationTools/overallMapDisplayInterval: 2
 * /visualizationTools/overallMapVoxelSize: 0.5
 * /visualizationTools/trajFile: /home/colleen/wor...
 * /visualizationTools/transInterval: 0.2
 * /visualizationTools/yawInterval: 10.0

NODES
  /
    diagnostic_aggregator (diagnostic_aggregator/aggregator_node)
    gazebo (gazebo_ros/gzserver)
    localPlanner (local_planner/localPlanner)
    pathFollower (local_planner/pathFollower)
    ps3_joy (joy/joy_node)
    realTimePlot (visualization_tools/realTimePlot.py)
    rvizGA (rviz/rviz)
    sensorScanGeneration (sensor_scan_generation/sensorScanGeneration)
    sensorTransPublisher (tf/static_transform_publisher)
    spawn_camera (gazebo_ros/spawn_model)
    spawn_lidar (gazebo_ros/spawn_model)
    spawn_robot (gazebo_ros/spawn_model)
    terrainAnalysis (terrain_analysis/terrainAnalysis)
    terrainAnalysisExt (terrain_analysis_ext/terrainAnalysisExt)
    vehicleSimulator (vehicle_simulator/vehicleSimulator)
    vehicleTransPublisher (tf/static_transform_publisher)
    visualizationTools (visualization_tools/visualizationTools)

auto-starting new master
process[master]: started with pid [4825]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 740465c8-09c8-11ef-a0b1-375a12b6555e
process[rosout-1]: started with pid [4835]
started core service [/rosout]
process[ps3_joy-2]: started with pid [4842]
process[diagnostic_aggregator-3]: started with pid [4843]
process[localPlanner-4]: started with pid [4845]
[ERROR] [1714794207.302940902]: Couldn't open joystick /dev/input/js0. Will retry every second.
process[pathFollower-5]: started with pid [4850]
process[vehicleTransPublisher-6]: started with pid [4855]
process[sensorTransPublisher-7]: started with pid [4857]
process[terrainAnalysis-8]: started with pid [4862]
process[terrainAnalysisExt-9]: started with pid [4871]
process[gazebo-10]: started with pid [4875]
process[spawn_camera-11]: started with pid [4880]
process[spawn_lidar-12]: started with pid [4881]
process[spawn_robot-13]: started with pid [4882]
process[vehicleSimulator-14]: started with pid [4883]
process[sensorScanGeneration-15]: started with pid [4884]
process[visualizationTools-16]: started with pid [4897]

process[realTimePlot-17]: started with pid [4901]
process[rvizGA-18]: started with pid [4906]

Reading path files.
qt5ct: using qt5ct plugin

Simulation started.

qt5ct: D-Bus global menu: no
[ INFO] [1714794209.095445266]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1714794209.100379963]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...

Initialization complete.

[ INFO] [1714794210.294965697]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1714794210.372319237]: Physics dynamic reconfigure ready.
[ERROR] [1714794213.958068304, 0.026000000]: Updating ModelState: model [camera] does not exist
[ERROR] [1714794213.958143801, 0.027000000]: Updating ModelState: model [lidar] does not exist
[ERROR] [1714794213.958159312, 0.027000000]: Updating ModelState: model [camera] does not exist
[ERROR] [1714794213.958173378, 0.027000000]: Updating ModelState: model [robot] does not exist
[ERROR] [1714794213.958184312, 0.027000000]: Updating ModelState: model [lidar] does not exist

How to add an IMU sensor

Thank for your excellent work!
I want to add an imu sensor in the simulator. I tried to use libgazebo_ros_imu_sensor.so as a plugin, but the output is wrong. So I would like to ask for some advice about adding an imu sensor. Thank you!

How to build the model?

Hi Doctor Zhu, I'd like to know how did you build those models, like garage, tunetc, etc. Did you just finish them by gazebo model editor? or is there any other software you recommend. Thank you

Frame [velodyne] does not exist

Dear authors,
Recently I was trying to add my perception package into your simulator, and would like to subscribe to the velodyne_points topic. However, I am encountering the issue saying Frame [velodyne] does not exist. Could you please help me with that?
image

rviz/WaypointTool not supported in Noetic: Please Fix

Hello,

I am encountering an issue while trying to run your vehicle_simulator project on ROS Noetic. Specifically, the problem lies in line 369 of the src/vehicle_simulator/rviz/vehicle_simulator.rviz file, which includes the rviz/WaypointTool. From what I understand, this tool is only available in ROS Melodic.

Tools:

  • Class: rviz/MoveCamera
  • Class: rviz/WaypointTool
    Topic: waypoint

As this tool is not available in the Noetic version, the project fails to run correctly on Noetic. May I ask if there are plans to fix this issue so that the project is compatible with ROS Noetic?

Your assistance in providing a fix or an updated version would be greatly appreciated.

Thank you for your time and efforts.

Best regards,

Hello, I found that: origin/rgbd_ Camera

Hello, when I checked the branch, I found: origin/rgbd_ Camera, I tried and needed a password; I would like to ask if it is open source, thank you. Wishing you success in your work!

How to use visualization tools

How to combine the visualization tool with other independent exploration algorithms to output the same evaluation index data?

a problem about Quick Start

Hi, this work is exciting, but when I follow Quick Start on the official website, rviz and gazebo crashes after launching the vehicle_simulator. Is this about Graphics driver or version of gazebo?
11111

requires the 'use_local_planner' arg to be set

I installed autonomous_exploration_development_environment follow https://www.cmu-exploration.com/ and switch to the branch noetic_rgbd_camera.
but there is an error when I run roslaunch vehicle_simulator system_garage.launch

yx@yx-MS-7B18:/PycharmProjects/autonomous_exploration_development_environment$ source devel/setup.sh
yx@yx-MS-7B18:
/PycharmProjects/autonomous_exploration_development_environment$ roslaunch vehicle_simulator system_garage.launch
... logging to /home/yx/.ros/log/2501b348-8cde-11ee-b37c-13f57abff152/roslaunch-yx-MS-7B18-229652.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

RLException: [/home/yx/PycharmProjects/autonomous_exploration_development_environment/src/vehicle_simulator/launch/system_garage.launch] requires the 'use_local_planner' arg to be set
The traceback for the exception was written to the log file

Problems running in the simulation environment

Hi,the work is excellent.But when I run the simulation environment,there were two problems above:
image
1、The running time of the algorithm in the third column always shows 0 instead of a fluctuating curve, where is it not set?
2、The terminal keeps reporting an error: [ERROR] Spawn service failed. Exiting. Is this a problem with sim_time in the world file?
Thanks for your answer!

ERROR: Couldn't open joystick /dev/input/js0

When I run `roslaunch vehicle_simulator system_garage.launch', the error "Couldn't open joystick /dev/input/js0. Will retry every second." appears. Does anyone have advice on solving it?

About Isaac sim for automous dirving simluation

Dear officer:
I m starting to build a simlation environment and learn from the ISAAC SIM documents for some times. But when I create my own automous driving simulation, I found that the Car can t move on the ground I imported from the URDZ file, however it can run on the default groundplane, it makes me struggle. My question is have you meet this situation before? Or the are any setting needed when import the groundplane file?
Besides, where did you learn how to use the ISAAC SIM? It seems that there are few turtorial on the Internet.
Best regards.

Running on ROS2 humble fails due to pointcloud.ply not being found

running on humble fails due to ./install/vehicle_simulator/share/vehicle_simulator/mesh/garage/preview/pointcloud.ply not being found.
it also causes gazebo not to spawn the robot correctly.
the command colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release to build it does not copy the mesh directories contents to inside of install directory.
once the files were manually copied, the problem went away.

Vehicle "stuck" in place weirdly

When I run roslaunch vehicle_simulator system_garage.launch and give a waypoint nearby, but the vechicle seems to stuck in the ground.
catkin_make in wsl, Ubuntu 20.04, ros noetic.
Only warns like:
[ WARN] [1715307491.238447200, 74.997000000]: TF_REPEATED_DATA ignoring data with redundant timestamp for frame sensor_at_scan (parent map) at time 74.554000 according to authority unknown_publisher
and a error:
[ERROR] [1715307352.415537900]: Couldn't open joystick /dev/input/js0. Will retry every second.
shown up while running.
image
As you can see in picture, the vehicle kept jerking up and down as if it were stuck in the ground, and couldn't go far at all.

How to use terrain_analysis?

Hi, thank you for your great work. I want to apply terrain_analysis on my quadruped robot platform. But I see two include file.
image
Isn't this function duplicated?
And when I use terrain_analysis. I did not see green area and red area. So what parameters need to be set to adapt to my robot?
image

How to create one's own map for simulation?

Is there a tutorial for creating some other simulation environment other than the garage, campus, forest etc. provided by the authors? Say, starting from a locally created .pcd point cloud map file.

Instructions for building with ROS humble

Hi @HongbiaoZ, thanks for your work in this environment. I realised that there is a branch for ROS humble. But there is no instructions to build it. Thus, would like to check with you how I can build this environment for ROS2.

About the license.

Hello.
Thank you for publishing your excellent work.

I can't find any information about the license, is it mentioned anywhere?

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.