Skip to content

Commit

Permalink
update robot installation instructions to andino
Browse files Browse the repository at this point in the history
  • Loading branch information
aforechi committed Oct 1, 2023
1 parent c5502aa commit 3c4e704
Showing 1 changed file with 32 additions and 63 deletions.
95 changes: 32 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,94 +11,63 @@
This is a ROS Global (Path) Planner Plugin that implements the Parallel Curves path planning algorithm.

```
cd ~/catkin_ws/src
cd ~/ws/src
git clone https://github.com/aforechi/parallel_curves.git
cd ..
catkin build
catkin install
rospack plugins --attrib=plugin nav_core
colcon build
```

## Clearpath Husky Robot Simulator
## Andino Robot Simulator

If you decided to test this plugin using Husky Robot Simulator you can install it with the following instructions:
If you decided to test this plugin using Andino Robot Simulator you can install it with the following instructions:

```
$ cd ~/catkin_ws/src
$ git clone --branch <distro-branch-name> https://github.com/husky/husky.git
$ cd ~/ws/src
$ git clone https://github.com/Ekumen-OS/andino.git
$ cd ..
$ catkin build
$ sudo apt-get install ros-<distro-name>-gazebo-ros-pkgs ros-<distro-name>-gazebo-ros-control
$ sudo apt-get install ros-<distro-name>-multimaster-launch
$ sudo apt-get install ros-<distro-name>-lms1xx
$ rosdep install --from-path src --ignore-src
$ catkin build
$ source devel/setup.bash
$ colcon build
$ rosdep install --from-paths src --ignore-src -i -y
$ source install/setup.bash
```

## Enable the Laser Scan Sensor

The Navigation Stack needs a perception sensor to work and the husky package does not enable it by default in the main distro branches. So you have to enable at least one sensor manually. The robot description has some available sensors and the simpler one is the laser scan LMS1XX. This sensor is enough to test the path planner. Therefore, **set 1** in the parameter laser_enabled as shown below:

```
<!-- File husky.urdf.xacro -->
<!-- Location: ~/catkin_ws/src/husky/husky_description/urdf/husky.urdf.xacro -->
<xacro:arg name="laser_enabled" default="$(optenv HUSKY_LMS1XX_ENABLED 1)" />
```

## Running the Plugin on the Husky Robot using Gazebo Simulator**
## Running the Plugin on the Andino Robot using Gazebo Simulator**

In order to load this plugin you have to change the default value of "base_global_planner" to "parallel_curves/ParallelCurvesRos" in the launch file *move_base.launch* as shown below (you should comment or remove the default global planner value "navfn/NavfnROS").
In order to load this plugin you have to change the default value of "plugin" to "parallel_curves/ParallelCurvesRos" in the configuration YAML file of the navigation planners *nav2_params.yaml* you should insert the parameters values of the new planner:

```
<!-- move_base.launch -->
<!-- ~/catkin_ws/src/husky/husky_navigation/launch/move_base.launch -->
<!-- Planners -->
<!-- <arg name="base_global_planner" default="navfn/NavfnROS"/> -->
<arg name="base_global_planner" default="parallel_curves/ParallelCurvesRos"/>
<!-- File nav2_params.yaml -->
<!-- ~/ws/src/andino_navigation/params/nav2_params.yaml -->
planner_server:
ros__parameters:
expected_planner_frequency: 20.0
plugins: ["GridBased"]
use_sim_time: True
GridBased:
plugin: "parallel_curves/ParallelCurvesRos"
tolerance: 0.5
allow_unknown: true
line_splits: 2
```

In the configuration YAML file of the navigation planners *planner.yaml* you should insert the parameters values of the new planner:

```
<!-- File planner.yaml -->
<!-- ~/catkin_ws/src/husky/husky_navigation/config/planner.yaml -->
ParallelCurvesRos:
cell_size: 0.2
min_dist_btw_nodes: 1.0
max_iter_inside_circle: 200
max_range: 10.0
```
**4. Testing the planner with Gazebo Simulator and Rviz**
**3. Testing the planner with Gazebo Simulator and Rviz**

In three separate terminals, execute these three launch commands:

```
roslaunch husky_gazebo husky_playpen.launch
roslaunch husky_navigation amcl_demo.launch
roslaunch husky_viz view_robot.launch
. /usr/share/gazebo/setup.bash
ros2 launch andino_navigation andino_simulation_navigation.launch.py
```
The amcl_demo.launch file launchs the *move_base.launch* file edited above and the all navigation packages. The *view_robot.launch* file run the RViz with the proper topics configuration.

Lastly, on the left side at "Display" part, change the name of the topic related to Global Planner to visualize it. If you using the DWA Local Planner the topic name is "/move_base/DWAPlannerROS/global_plan".

To test the plugin just click on "2D Nav Goal" button (at the top) and choose a goal location. You can now see that path generated by this planner (in green) and the robot moving to its goal if everything is fine.

## Unit Tests
Launch the tests verification at ```~catkin_ws/build```:

```$ catkin test parallel_curves```

Or run manually with:

```rostest parallel_curves test.launch```

## VSCode Setup

If you want to setup vscode please refer to https://samarth-robo.github.io/blog/2020/12/03/vscode_ros.html
Launch the tests verification:

```
colcon test
colcon test-result --all
```

## Errors and Issues

Expand All @@ -111,7 +80,7 @@ If you use the navigation algorithm from this repository, please cite this work
- A. Baumgarten, L. Resendo, A. Forechi. [**Parallel Curves Path Planning Based on Tangent Segments to Concentric Curves**](https://arxiv.org/abs/). The 6th Iberian Robotics Conference (ROBOT2023), 2023.

```bibtex
@InProceedings{macenski2020marathon2,
@InProceedings{baumgarten2023,
title = {Parallel Curves Path Planning Based on Tangent Segments to Concentric Curves},
author = {Baumgarten, Alysson and Resendo, Leandro and Forechi, Avelino},
year = {2023},
Expand Down

0 comments on commit 3c4e704

Please sign in to comment.