Code Monkey home page Code Monkey logo

navigation2's Issues

Factor out strutils from amcl_node

Note: Rename the class to follow the naming standard: StrUtils and the filename strutils.hpp.
The file name to include should be: "nav2_util/strutils.hpp"

Port AMCL to ROS2

Port ROS AMCL package to ROS2 and then integrate it as a supporting module to Navigation2 package.

Collision as localisation input

Some food for thought: currently I'm working on a robot that could use collisions as one of its localisation inputs (think of a Roomba-like vehicle). I'm not at the stage of developing planners yet, but my intention was to implement a planner that plans for collision in some specific cases like walls or other static objects.

What's the idea regarding the collision avoidance requirement (i.e. what kind of restrictions on the design) and how would or relate with my idea?

Add waitForServer to TaskClient

Add a waitForServer method to the TaskClient template class which waits for the TaskServer to be running. This method should take a timeout value with a default value.

Fix RCLCPP_INFO messages

Right now all the RCLCPP_INFO messages look like this one for example:
RCLCPP_INFO(get_logger(), "MissionExecutor::~MissionExecutor")

Let's change these to something more useful to the end user. For example, this one instead could be "Shutting down Mission Executor".

High level block diagram of intended workflow

Coming from the standard nav stack and having built a few alternatives over time, I dont look at this project and have a good understand what's happening or how the elements interact.

Is there a plan to make a block diagram much like the move_base one to clear up your architectural intentions? It's challenging to get involved or track without it.

Which license to use? BSD 3 Clause or Apache 2?

We need to resolve the licensing. ROS Navigation uses BSD 3. Most of ROS2 core uses Apache 2.0. For new code, we could license it Apache 2.0, but we assume there will be some code ported from ROS (BSD). How is this being handled by other ROS2 projects?

Fix linter failures in nav2_dijkstra_planner

Test project /home/crdelsey/src/ros_dev_workspace/navigation2/build/nav2_dijkstra_planner
Start 1: copyright
1/5 Test #1: copyright ........................***Failed 0.46 sec
Start 2: cppcheck
2/5 Test #2: cppcheck ......................... Passed 0.50 sec
Start 3: cpplint
3/5 Test #3: cpplint .......................... Passed 0.75 sec
Start 4: lint_cmake
4/5 Test #4: lint_cmake ....................... Passed 0.48 sec
Start 5: uncrustify
5/5 Test #5: uncrustify ....................... Passed 0.62 sec

80% tests passed, 1 tests failed out of 5

Get starting pose from localization

Currently, the robot's starting pose is stubbed out in the BtNavigator and SimpleNavigator classes. Instead, it should come from the Localization module.

Repo formatting

Currently the metapackage exists under 'src' directory, the navigation stack and most other ROS metapackages are not organized this way and leads to a level of confusion

Implement ROSRobot functionality

Right now ROSRobot is an empty shell class with no functionality. It needs to be defined and implemented or the code should be removed.

Fix linter failures in nav2_amcl

Test project /home/crdelsey/src/ros_dev_workspace/navigation2/build/nav2_amcl
Start 1: copyright
1/5 Test #1: copyright ........................***Failed 0.47 sec
Start 2: cppcheck
2/5 Test #2: cppcheck ......................... Passed 0.51 sec
Start 3: cpplint
3/5 Test #3: cpplint ..........................***Failed 0.75 sec
Start 4: lint_cmake
4/5 Test #4: lint_cmake .......................***Failed 0.46 sec
Start 5: uncrustify
5/5 Test #5: uncrustify .......................***Failed 0.77 sec

20% tests passed, 4 tests failed out of 5

Fix linter failures in nav2_util

Test project /home/crdelsey/src/ros_dev_workspace/navigation2/build/nav2_util
Start 1: copyright
1/5 Test #1: copyright ........................***Failed 0.46 sec
Start 2: cppcheck
2/5 Test #2: cppcheck .........................***Failed 0.53 sec
Start 3: cpplint
3/5 Test #3: cpplint ..........................***Failed 1.15 sec
Start 4: lint_cmake
4/5 Test #4: lint_cmake ....................... Passed 0.46 sec
Start 5: uncrustify
5/5 Test #5: uncrustify .......................***Failed 1.06 sec

Strategy to resolve build dependencies

We have several build dependencies right now, like message_filters, that aren't available as packages. We need a method to track and then automate the pull and build of those if possible. Something like a build script that pulls the source, sources the correct setup files and runs colcon build.

Add New Mapping Interface and Environmental Model

Support an extensible framework of map representations via a Mapping Interface and incorporate relevant static, dynamic, object, and semantic map data into an Environmental Model to be used by map dependent algorithms.

First aim is to support & refactor grid-based map representations such as grid_map, occupancy grids, and costmap_2d with further aim to support interface for other tree/node-based representations such as octomap.

AMCL - fix all warnings

Currently when building AMCL, there are a lot of warnings spewing out. I realize that this code will be refactored, but want an issue to make sure these are cleaned up. I want to be able to add the -Werr compiler flag to the CMakeLists.txt going forward, so I'll file a separate issue for that.

Fix linter failures in nav2_dwa_controller

Test project /home/crdelsey/src/ros_dev_workspace/navigation2/build/nav2_dwa_controller
Start 1: copyright
1/5 Test #1: copyright ........................ Passed 0.46 sec
Start 2: cppcheck
2/5 Test #2: cppcheck ......................... Passed 0.46 sec
Start 3: cpplint
3/5 Test #3: cpplint .......................... Passed 0.49 sec
Start 4: lint_cmake
4/5 Test #4: lint_cmake .......................***Failed 0.45 sec
Start 5: uncrustify
5/5 Test #5: uncrustify ....................... Passed 0.47 sec

80% tests passed, 1 tests failed out of 5

Resolve how to handle BTpp dependency

How do we handle the dependency on the BTpp library since it doesn't have an Ubuntu package. We could require anyone building this repo to first build Btpp from source and install. Other options?

Modify TaskServer to not be a ROS node, but accept a ROS node pointer

Currently, the TaskServer derives from the ROS Node class. Instead, it should accept a ROS Node SharedPtr in its constructor. This will allow more flexibility in deployment, such as having multiple TaskServers per node. Once the TaskServer is updated, the TaskClient can also be updated to accept a Node::SharedPtr instead of a Node *.

Create MissionPlan message type

Right now the Mission Plan message is defined as a string.src/mission_execution/nav2_mission_execution_msgs/msg/MissionPlan.msg

We need a real Mission Plan, whether that is an array of actions or something else is not clear yet.

Add CI for build and test of branches and PRs

Now that we're getting some code working, we need some automated testing using CI (Jenkins? Travis?) to run for every pull request and periodically on every branch (or at least on the master branch).

Fix linter failures in nav2_bt_navigator

Test project /home/crdelsey/src/ros_dev_workspace/navigation2/build/nav2_bt_navigator
Start 1: copyright
1/5 Test #1: copyright ........................ Passed 0.46 sec
Start 2: cppcheck
2/5 Test #2: cppcheck ......................... Passed 0.46 sec
Start 3: cpplint
3/5 Test #3: cpplint .......................... Passed 0.50 sec
Start 4: lint_cmake
4/5 Test #4: lint_cmake .......................***Failed 0.45 sec
Start 5: uncrustify
5/5 Test #5: uncrustify ....................... Passed 0.49 sec

80% tests passed, 1 tests failed out of 5

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.