| ... | ... | @@ -48,6 +48,19 @@ It is not good enough to avoid obstacles, when it comes to humans, it should be |
|
|
|
* Look at Lecture 11 of TDDE05
|
|
|
|
* A good starting point is _Human-aware robot navigation: A survey, T. Kruse, A. Kumar Pandey, R. Alami and A. Kirsch, Robotics and Autonomous Systems, 2013_
|
|
|
|
|
|
|
|
For a C++, you can check [Nav2](https://navigation.ros.org/) documentation for how to integrate your algorithm in the navigation stack of the turtle bot.
|
|
|
|
|
|
|
|
For Python, you should also check [Nav2](https://navigation.ros.org/) documentation to learn about the general concepts. However, Nav2 does not support Python directly, I have however implemented interfaces for a [Controller](https://navigation.ros.org/plugin_tutorials/docs/writing_new_nav2controller_plugin.html), and for trajectory generation and critic for the [dynamic window controller](https://github.com/ros-planning/navigation2/tree/main/nav2_dwb_controller) used by turtle bot, the code is available in [air_navigation](https://gitlab.liu.se/tdde05_ros2/air_navigation)
|
|
|
|
and some examples in [air_navigation_examples](https://gitlab.liu.se/tdde05_ros2/air_navigation_examples/-/blob/master/air_navigation_examples/__init__.py).
|
|
|
|
|
|
|
|
For both C++ and Python, to use a custom controller and critic, you need to change the configuration of nav2, you can see example for using the air_navigation_examples (nav2_test_py_controller.yaml)[https://gitlab.liu.se/tdde05_ros2/air_bringup/-/blob/master/config/nav2_test_py_controller.yaml] and (nav2_test_py_dwb.yaml)[https://gitlab.liu.se/tdde05_ros2/air_bringup/-/blob/master/config/nav2_test_py_dwb.yaml]. To use a different configuration than the default one:
|
|
|
|
|
|
|
|
```
|
|
|
|
ros2 launch air_bringup turtle.launch.py nav2_params_file:=`ros2 pkg prefix air_bringup`/share/air_bringup/config/nav2_test_py_controller.yaml
|
|
|
|
```
|
|
|
|
|
|
|
|
*Ask your assistant for help to setup your controller!*
|
|
|
|
|
|
|
|
## Natural text commands:
|
|
|
|
|
|
|
|
A natural interface between an human and a robot is for the human to give commands to the robot using natural sentences, such as, "I need to go to George's office and bring us two coffee.". The goal of this part is to decompose this sentence in three goals: _goto George office_ _bring coffee George_ _bring coffee user_.
|
| ... | ... | |