Skip to content

Latest commit

 

History

History
210 lines (161 loc) · 5.22 KB

README.md

File metadata and controls

210 lines (161 loc) · 5.22 KB

SPARK

REPORT, TODO

Launch Sequence

MAP GENERATION

roslaunch spark_gazebo spark_house.launch
# Robot State Publishers for the robot
# Spawns robot in gazebo
# LaserScan Merger
roslaunch spark_slam gmapping.launch
# Gmapping

OR 

roslaunch spark_slam slamtoolbox_mapping.launch
# SlamToolBox

OR 

roslaunch spark_slam cartographer.launch
# Cartographer
roslaunch spark_slam map_saver.launch map_name:=my_map
# Sae the Map

NAVIGATION ON SAVED MAP

roslaunch spark_gazebo spark_house.launch
# Robot State Publishers for the robot
# Spawns robot in gazebo
# LaserScan Merger
roslaunch spark_navigation spark_navigation.launch
# Map Server
# AMCL
# MoveBase

SLAM

roslaunch spark_gazebo spark_house.launch
# Robot State Publishers for the robot
# Spawns robot in gazebo
# LaserScan Merger
roslaunch spark_slam spark_slam.launch
# SLAM ToolBox Mapper
# MoveBase

Note

For arena to load in gazebo copy arena directory within spark_gazebo package to ~/.gazebo/models

DYNAMIC PROHIBITED SECTOR

# Launch Gazebo and Navigation

roslaunch spark_navigation prohibitor.launch
# Verify path to map and .yaml file

CHECKPOINT

Save checkpoints.

# Added in gazebo.launch (Bringup in real robot)
rosrun spark_slam checkpoint_saver.py /path_to/checkpoints.yaml

SINGLE GOAL

# Launch Gazebo and Navigation

roslaunch spark_navigation callback_goal

Packages


Description
└── Launch
   └── description (Visualize tf and robot model)


Laser Merger
├── Launch
│  └── laser_merger (Merge LaserScan of both front and rear and produce a single LaserScan)
└── Node
   └── ira_laser_merger


Gazebo
├── Launch
│   ├── empty_world (Empty simulation env with robot)
│   ├── turtlebot3_house (Indoor simulation env with robot)
│   └── arena (Arena for Robocon 24)
└── Node
   └── battery (Simulation of linear battery discharge)

Control
└── Node
   └── spark_teleop.py (Teleop)

Slam
└── Launch
   ├── map_saver (save map in the navigation package)
   ├── gmapping (map generation using gmapping package)


   ├── cartographer (map generation using cartographer)


   ├── slamtoolbox_mapping (map generation using slamtoolbox)


   ├── spark_slam (slam using any of the above mapping agent)
   ├── checkpoint_saver.py (stores the current robot pose as checkpoint after calling the service) Usage
   └── update_initpose.py (Gets milestone from user in form of service and pubs topic to /amcl/initialpose) Usage

Navigation
├── Launch
│   ├── spark_amcl (Localization of the robot in the environment)
│   ├── spark_move_base (Navigation entity)
│   └── spark_navigation (To start map server, amcl, and move_base)


└──Node
   ├── Dynamic prohibition layer: prohibitor.py (Adds removes sectors within map as prohibited layer after reading from YAML) Usage


Navigation_goals
├── Launch
│   └──
└── Node
   ├── raw_goal (Send Single Goal using direct topic publishment and not via Actionlib)
   ├── simple_goal (Send Single Goal using Actionlib)
   ├── callback_goal (Create callback and do not wait for result)
   └── switch_fsm (fsm implementation independent of ros)


BT Examples
├── Sync_No_Loop
├── Sync_Loop


├── Reactive (Async behavior with Reactive sequence and memory)


└── port_blackboard (Same MoveToGoal SyncActionNode but to which goal to reach is defined by port name)


ROS vs BT
├── ros_vs_bt
├── ros_and_bt
└── thread (is multi-threading a problem)


Wait Recovery


Backoff Recovery