Skip to content

Conversation

orduno
Copy link
Contributor

@orduno orduno commented Aug 9, 2018

  • Created the DijkstraPlanner based on the core algorithms from Navfn ROS1 nav package.
  • Updated the SimpleNavigator to use the new DijkstraPlanner
  • Created an initial WorldModel node and Costmap mockup to test the new planner.
  • Fixed bug with TaskClient.
  • Added a few new messages and services related to Costmap. Made a few updates to the Path messages.

@orduno orduno self-assigned this Aug 9, 2018
@orduno orduno requested review from mjeronimo, mkhansenbot, bpwilcox, a user and mhpanah August 9, 2018 22:45
endif()

find_package(ament_cmake REQUIRED)
# find_package(rclcpp REQUIRED)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove commented-out sections to keep things tidy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK


include_directories(include)

add_library(costmap STATIC

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want a general utility library that can hold Costmap, etc., instead of proliferating directories for each library.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, made a note to discuss this on our next meeting.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, i moved it to a util library

#ifndef WORLD_MODEL__COST_VALUES_H_
#define WORLD_MODEL__COST_VALUES_H_
/** Provides a mapping for often used cost values */
namespace costmap

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please run ament_cpplint and ament_uncrustify on all code and address issues. It may not be practical yet for old code (Navfn), but should do as much as possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do.

<version>0.1.0</version>
<description>TODO</description>
<author email="[email protected]">Oregon Robotics Team</author>
<author email="[email protected]">Carlos Orduno</author>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation is off. Also should discuss (again) how we're handing author and maintainer fields.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to list of discussion topics.

RCLCPP_INFO(node_->get_logger(), "Costmap::getCostmap");

// TODO(orduno): faking out a costmap for now
(void)specifications;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of casting to void, you can also comment out the name ("specifications") in the function interface (line 27). I prefer commenting out the name as it results in fewer lines of code.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree


// Some arbitrary numbers
costmap.info.resolution = 1; // m/cell
costmap.info.width = 10; // cells
Copy link

@mjeronimo mjeronimo Aug 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we change the name of the field from "width" to make it clearer (and not require the comment)? The general principle being to improve the variable names to avoid needing comments to explain them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree on the principle. In this case, a better name is number_cells_x_direction, same for height. However I took the variable name as a carry over from Occupancy Grid, and as we see on other ROS message definitions, the preference is to use something short. Added to the list of things to discuss.

Costmap::getTestData(const int width, const int height, vector<uint8_t>& data)
{
// TODO(orduno): fixed size for now
(void)width;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment out names on line 68?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


// TODO(orduno): instead of hardcoding, define a function

const uint8_t n = 255; // no information

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each of these special values should have a symbol. It could be from an enumeration (with explicit values) or a macro. That way, the code wouldn't need comments and would be clearer.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to enum.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After further discussion, it was changed to static const within Costmap class

#include "costmap/Costmap.hpp"
#include <tf2/LinearMath/Quaternion.h>

using std::vector;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should discuss our team conventions on whether we're opening namespaces (std) or not. We should be consistent as a team (and as individuals).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be in favor of opening with some rules: not on header files, only introducing the name being used. Added to the discussion list.

std_msgs/Header header

# MetaData for the map
CostmapMetaData info

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps the field should be called "metadata" instead of "info."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is related to a previous comment about ROS message definitions and carryover from ROS1. Added to the discussion list.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

CostmapMetaData info

# The cost data, in row-major order, starting with (0,0).
uint8[] data

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like there needs to be newline here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added


# The origin of the costmap [m, m, rad].
# This is the real-world pose of the cell (0,0) in the map.
geometry_msgs/Pose origin

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

geometry_msgs/PoseWithCovariance goal

# The start pose for the plan
geometry_msgs/PoseStamped start

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need a stamped version of the pose? We have the timestamp in the header already. Same for the goal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently not used. In future we might want to add time constraints to start and reach goal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, Mike is right, posestamp is not needed, and we don't want to overload the term. If we need to add time constraints we'll have to add a new field.

# Specifications for the requested costmap
nav2_msgs/Costmap map
---
nav2_msgs/Costmap map

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Also realized that the request should be nav2_msgs/CostmapMetaData -- no need for the data field.

#include <string>
#include <memory>
#include <exception>
#include <chrono>
#include <iostream>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see that iostream is required. Still using it? Should remove any #includes that aren't required.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

@@ -28,4 +28,4 @@ class AStarPlanner : public ComputePathToPoseTaskServer
TaskStatus executeAsync(const ComputePathToPoseCommand::SharedPtr command) override;
};

#endif // PLANNING__ASTARPLANNER_HPP_
#endif // PLANNING__ASTARPLANNER_HPP_

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

bool computePotential(const geometry_msgs::msg::Point& world_point);

// Compute a plan to a goal from a potential - must call computePotential first
bool getPlanFromPotential(const geometry_msgs::msg::PoseStamped& goal, std::vector<geometry_msgs::msg::PoseStamped>& plan);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please run (all files) through ament_cpplint and ament_uncrustify. Several lines are too long.

* @class NavFn
* @brief Navigation function class. Holds buffers for costmap, navfn map. Maps are pixel-based. Origin is upper left, x is right, y is down.
*/
class NavFn
Copy link

@mjeronimo mjeronimo Aug 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should refactor this class. It's not very clear as-is. We can probably extract out the various ideas into different (reusable) classes. Doesn't have to be done immediately though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. Once we have a sufficient level of functionality and have done tests across the components, we can proceed to refactor / replace some of the core algos.

@@ -0,0 +1,32 @@
// Copyright (c) 2018 Intel Corporation
Copy link

@mjeronimo mjeronimo Aug 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is obsolete and can be removed. It shouldn't be there in the ros2_devel branch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

@@ -5,7 +5,9 @@
<version>0.1.0</version>
<description>TODO</description>
<author email="[email protected]">Oregon Robotics Team</author>
<author email="[email protected]">Carlos Orduno</author>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation off.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

@@ -55,4 +55,4 @@ AStarPlanner::executeAsync(const ComputePathToPoseCommand::SharedPtr command)
setResult(result);

return TaskStatus::SUCCEEDED;
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added, not sure how i removed those...

}
catch (...) {
RCLCPP_ERROR(this->get_logger(), "DijkstraPlanner::makePlan: failed to obtain costmap from server");
throw;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend throwing a specific kind of exception. See the standard exception types.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intention here is to re-throw the current exception.

planner_ = std::make_shared<NavFn>(costmap_.info.width, costmap_.info.height);

// Plan publisher for visualization purposes
plan_publisher_ = this->create_publisher<nav2_msgs::msg::Path>("plan", 1);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you intend to include the second parameter (qos_history_depth)? Or, is this a left-over from porting?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

left-over from porting

@@ -0,0 +1,17 @@
#pragma once

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should port the code to not require this header (and remove it).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, also needs to be moved to a util folder

<version>0.1.0</version>
<description>TODO</description>
<author email="[email protected]">Oregon Robotics Team</author>
<author email="[email protected]">Carlos Orduno</author>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

{
costmap_ = std::make_unique<Costmap>(this);

// Create a (lambda) callback function for when a costmap service is received.
Copy link

@mjeronimo mjeronimo Aug 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why a lambda function here versus a class method? Is there an advantage? In my opinion, it would be clearer to have a separate method and use it here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm having problems defining a ROS2 service that takes in a class method for the callback.

rclcpp::shutdown();

return 0;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Copy link

@mjeronimo mjeronimo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few items to address.

costmap
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add these lines here so other packages can find this one.
ament_export_include_directories(include)
ament_export_libraries(costmap)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

#define COSTMAP__COSTVALUES_H_

/** Provides a mapping for often used cost values */
enum class CostValue: uint8_t
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a big fan of enums to represent constants due to various portability issues in the past. I'd rather just see these as static consts defined in the Costmap class.

}

void
Costmap::getCostmap(const nav2_msgs::msg::CostmapMetaData & /*specifications*/,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The coding standard says you should break after the parenthesis and put the first parameter on the next line.

Also, return type is typically on the same line in the coding standard, though I don't know if it is explicitly required.

eg.

void Costmap::getCostmap(
  const nav2_msgs::msg::CostmapMetaData & spec, nav2_msgs::msg::Costmap & costmap)


void
Costmap::getCostmap(const nav2_msgs::msg::CostmapMetaData & /*specifications*/,
nav2_msgs::msg::Costmap & costmap)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than use an output parameter here, I'd just return the costmap. eg.

nav2_msgs::msg::Costmap Costmap::getCostmap(const nav2_msgs::msg::CostmapMetaData & /*specifications*/)
{
  nav2_msgs::msg::Costmap costmap;
  ...
  return costmap;
}

The return value elision optimization will remove any overhead.

}

void
Costmap::getTestData(const int /*width*/, const int /*height*/, vector<uint8_t> & data)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just leave out the parameters you aren't using. You can always add them when you need them.

n,o,o,o,o,o,o,o,o,n, //8
n,n,n,n,n,n,n,n,n,n}; //9

data = costmapMaze2;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you made these a vector of vectors, you could select the maze you want by index. That way you could run all mazes in one test set instead of having to recompile every time you want to run a different maze.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will modify once I integrate the PlannerTestNode, right now is just a place holder for the actual costmap.

@@ -60,7 +61,7 @@ class TaskClient
}

// The client can wait for a result with a timeout
TaskStatus waitForResult(typename ResultMsg::SharedPtr result, unsigned int milliseconds)
TaskStatus waitForResult(typename ResultMsg::SharedPtr& result, unsigned int milliseconds)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to elaborate a bit, passing the shared_ptr by value is the safe option, but it comes at a cost since the implementation has to acquire a lock to increment the reference count.

Passing by reference is a performance optimization when you know that the callee won't hang on to the pointer. Passing by const reference makes passing by reference a bit safer.

None of this applies in this particular case though, since it is an output parameter.

@@ -60,7 +61,7 @@ class TaskClient
}

// The client can wait for a result with a timeout
TaskStatus waitForResult(typename ResultMsg::SharedPtr result, unsigned int milliseconds)
TaskStatus waitForResult(typename ResultMsg::SharedPtr& result, unsigned int milliseconds)
{
std::mutex m;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks suspicious. Nobody else could ever acquire this mutex since it is a local variable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjeronimo Can you look at @crdelsey 's question

@@ -48,6 +48,7 @@ class TaskClient
void executeAsync(const typename CommandMsg::SharedPtr msg)
{
taskSucceeded_ = false;
receivedNewMsg_ = false;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be called something like receivedResult_ instead of receivedNewMsg_

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed it to receivedResult_

if (taskSucceeded_) {
// TODO: possible race condition between receiving status message and actual data
// for now implemented a method using a flag, but might want to review further
if (taskSucceeded_ && receivedNewMsg_) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjeronimo How is taskSucceeded supposed to work? It seems like if we get a status message, then it has succeeded. It can never fail, just timeout. Or is this just unimplimented?

@@ -115,6 +120,8 @@ class TaskClient

// A convenience variable for whether the task succeeded or not
bool taskSucceeded_;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be std::atomic as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjeronimo Can you confirm @crdelsey 's comment?

@orduno orduno force-pushed the planner_integration branch from 70203ff to b2b8e9d Compare August 23, 2018 19:04
@orduno
Copy link
Contributor Author

orduno commented Aug 24, 2018

  • Created the DijkstraPlanner based on the core algorithms from Navfn ROS1 nav package.
  • Updated the SimpleNavigator to use the new DijkstraPlanner
  • Created an initial WorldModel node and Costmap mockup to test the new planner.
  • Fixed bug with TaskClient.
  • Added a few new messages and services related to Costmap. Made a few updates to the Path messages.

@orduno orduno merged commit 3c2e3e6 into ros-navigation:ros2_devel Aug 24, 2018
@orduno orduno deleted the planner_integration branch October 1, 2019 17:57
ghost referenced this pull request in logivations/navigation2 Mar 7, 2022
…ath, clear local costmap before narrow driving (#20)
doisyg added a commit to doisyg/navigation2 that referenced this pull request Oct 5, 2023
…_nav2_main

AUTO-795 Backport nav2 main features
mini-1235 pushed a commit to mini-1235/navigation2 that referenced this pull request Feb 5, 2025
* added bt navigator parameters

* - set use_sim_time default to false
- expanded on the example
- removed parameter sub-title

* added bt nav page

* updating bt navigator page title

Co-authored-by: Steve Macenski <[email protected]>

* add spacing between  and the objects in plugin_lib_names list

* minor formatting

Co-authored-by: Steve Macenski <[email protected]>
mini-1235 pushed a commit to mini-1235/navigation2 that referenced this pull request Feb 5, 2025
* Setup guide for sensors and costmap

Squashed commit of the following:

commit 61a3010d4eb0a2fc3cb50dd2b7244849fca4b4d2
Author: Josen Daniel Obordo De Leon <[email protected]>
Date:   Wed Jul 28 11:53:32 2021 +0800

    Flow improvements to costmap section

commit 2b179a7e3783f2982aba13ee082218bf3333285c
Author: Areeya Ultra Rubenecia <[email protected]>
Date:   Thu Jul 22 16:55:12 2021 +0800

    changes to build, run and verification of costmap section and minor writing edits

commit 12a52c7da92185fa453596ba2f8672f14525af9d
Author: Areeya Ultra Rubenecia <[email protected]>
Date:   Mon Jul 19 19:27:00 2021 +0800

    Made changes to Gazebo demo and added Build, Run and Verification subsection

commit ba9691d71e31ef077e9f44fdbe8426665073ba72
Merge: 8f47deb 5a76ce3
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Mon Jul 12 16:24:35 2021 +0800

    Merge pull request ros-navigation#21 from cc-marquez/setup_sensors_editing2

    Writing and editing improvements for sensor tutorials

commit 5a76ce348084bb936c7c53f5abd6a172d96d537f
Author: Josen Daniel Obordo De Leon <[email protected]>
Date:   Mon Jul 12 13:48:56 2021 +0800

    Writing and editing improvements

commit 8f47debb771757e7c6308f76bd40132a5f5c6b1f
Author: Areeya Ultra Rubenecia <[email protected]>
Date:   Wed Jul 7 16:10:02 2021 +0800

    Edited contents and figures according to comments

commit 69769a3d4eff36f62597912a5ca62c37b35c69be
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:57:58 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 15362c9a13bf789465e4fafa5564bf4d50df04d9
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:54:09 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 5fcb9daa329cc8b3a31f4c8eb697d154a7b0b7fa
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:53:35 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit beed1b55227ebb794a54e7077466c1092668063d
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:52:49 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 4a53d583b3bb0891fe305449b243d869472641c2
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:52:22 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit e61429705984876003e5ebe3e3115d7fdf476d51
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:28:04 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 6b81d695acbddce28aac47afd92c96b8a3b6241f
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:27:45 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit d113ece97f834897f4631e2841026ba4d0c4521e
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:27:21 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 73b94841ba95c6ab2d04b7b73ca9e80f1685cb3a
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:25:56 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 2eb2a5f73e5a842ff540bc29a3c76f896219fc7d
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:23:40 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 394d5eab4c11487a06118ae202850768d734a4f5
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:23:22 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit d8fe8ab94765e2746a7aa0acfe8a9b7ce28d20ac
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:22:57 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 668fa1f77706d81b2decd38895472b624603b865
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:22:16 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit a2dbce7df6e4f981209b6cf0840b603cb00bcd2d
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Fri Jul 2 13:22:02 2021 +0800

    Update setup_guides/sensors/setup_sensors.rst

    Co-authored-by: Steven Macenski <[email protected]>

commit 8863af547d4bfd2d454aba311b84a9ba8252796b
Merge: 6288058 ef35c4b
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Thu Jul 1 10:52:56 2021 +0800

    Merge pull request ros-navigation#20 from cc-marquez/f-estoperez-patch-9

    Proofreading

commit ef35c4b0facf51f43f0fc21ae6c7d34f7111f20d
Author: Fiona Estoperez/R&D Strategy Group /SRPH/Professional/Samsung Electronics <[email protected]>
Date:   Tue Jun 29 21:51:26 2021 +0800

    Proofreading

    Initial proofreading

commit 62880580f5e766503f3bd6e4c32634a701b2712c
Author: Areeya Ultra Rubenecia <[email protected]>
Date:   Thu Jun 24 17:43:00 2021 +0800

    Completed initial draft

commit 22bddd978244c5e2b6045ff5ef3c9c4d9518130a
Merge: 3d15a3f 4cde509
Author: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Date:   Wed Jun 23 18:43:23 2021 +0800

    Merge pull request ros-navigation#19 from cc-marquez/setup_sensors-review1

    Editing and revisions of sensor tutorials

commit 4cde509c6d25c4b6ae36ecd8e735374afcb5d90d
Author: Josen Daniel Obordo De Leon <[email protected]>
Date:   Fri Jun 18 16:46:03 2021 +0800

    Editing and revisions of sensor tutorials

commit 3d15a3f420c4f92294d2228d060c371eb158c730
Author: Areeya Ultra Rubenecia <[email protected]>
Date:   Wed Jun 9 16:48:08 2021 +0800

    Add initial draft of Setting Up Sensors Tutorial

* Change sample rviz pointcloud2 image

* Changes to costmap configuration snippet

* Apply suggestions from code review

Co-authored-by: Steve Macenski <[email protected]>

* Changes according to code review

* Improvements to costmap section

* Update setup_guides/sensors/setup_sensors.rst

Co-authored-by: Areeya Ultra Rubenecia/SW Optimization Group /SRPH/Engineer/Samsung Electronics <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>
Forsyth-Creations pushed a commit to Forsyth-Creations/navigation2 that referenced this pull request Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants