Skip to content

Commit 751c4c2

Browse files
authored
Merge branch 'rolling' into 6006-large-proj-xml-yaml-launch
2 parents e8cef15 + 907d837 commit 751c4c2

File tree

10 files changed

+138
-24
lines changed

10 files changed

+138
-24
lines changed

source/Concepts.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,3 @@ Related Content
1515
^^^^^^^^^^^^^^^
1616

1717
:doc:`See the ROS 2 citations <Citations>` for more explanation of concepts and citable resources.
18-
19-
For a brief video introduction to ROS 2, see this community contributed content:
20-
21-
* `Getting started with ROS Part 1: Nodes, Parameters and Topics <https://youtu.be/46TPAKXBOF8>`_
22-
* `Getting started with ROS Part 2: Services and Actions <https://youtu.be/keZAJ83eEoM>`_

source/Concepts/Intermediate/About-RQt.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,3 @@ Further Reading
8181
* ROS 2 Discourse `announcement of porting to ROS 2 <https://discourse.ros.org/t/rqt-in-ros2/6428>`__)
8282
* `RQt for ROS 1 documentation <https://wiki.ros.org/rqt>`__
8383
* Brief overview of RQt (from `a Willow Garage intern blog post <http://web.archive.org/web/20130518142837/http://www.willowgarage.com/blog/2012/10/21/ros-gui>`__)
84-
85-
.. raw:: html
86-
87-
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/CyP9wHu2PpY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

source/The-ROS2-Project/ROSCon-Content.rst

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,132 @@ ROSCon Talks
1010
The following `ROSCon <https://roscon.ros.org>`__ talks have been given on ROS 2 and provide information about the workings of ROS 2 and various demos:
1111

1212
.. tabs::
13+
.. group-tab:: 2025
14+
.. list-table::
15+
:header-rows: 1
1316

14-
.. group-tab:: 2024
17+
* - Title
18+
- Links
19+
* - Advancing Robot Learning with ROS 2
20+
- `video <https://vimeo.com/1136158846>`__
21+
* - ROS Project Update
22+
- `video <https://vimeo.com/1136205502>`__
23+
* - ros-controls Project Update
24+
- `video <https://vimeo.com/1136205235>`__
25+
* - On Use of Nav2 Route Server
26+
- `video <https://vimeo.com/1136164030>`__
27+
* - Seeing is Believing: Enhancing Robot Acceptance with Perception-Aware ...
28+
- `video <https://vimeo.com/1136205031>`__
29+
* - ⚡In-advance Lightning Talks⚡
30+
- `video <https://vimeo.com/1136158488>`__
31+
* - rmw_what❓ Implementing the ROS 2 Middleware Interface
32+
- `video <https://vimeo.com/1136204122>`__
33+
* - Zenoh Strikes Back: From a New Hope to Tier-1
34+
- `video <https://vimeo.com/1136377715>`__
35+
* - From DDS to Zenoh: Migrating the Dexory Autonomy ROS Stack—Configurati...
36+
- `video <https://vimeo.com/1136375669>`__
37+
* - Enhancing ROS 2 Communications: What's New in Fast DDS v3
38+
- `video <https://vimeo.com/1136157825>`__
39+
* - Agnocast: A ROS 2-Compatible Middleware Enabling True Zero-Copy IPC ...
40+
- `video <https://vimeo.com/1136159023>`__
41+
* - Replay Testing: Fast, Iterative Robotics Testing
42+
- `video <https://vimeo.com/1136204393>`__
43+
* - Rtest - Reliable ROS 2 Unit Tests Framework
44+
- `video <https://vimeo.com/1136205163>`__
45+
* - Formally Verifying Robot Behavior with Statistical Model Checking
46+
- `video <https://vimeo.com/1136157972>`__
47+
* - Cloudini: the Pointcloud Compression Library That You Missed in Your Life
48+
- `video <https://vimeo.com/1136159131>`__
49+
* - Unlock FFmpeg in ROS 2: A Flexible Audio/Video Pipeline with...
50+
- `video <https://vimeo.com/1136204514>`__
51+
* - Smarter Vision Pipelines for ROS 2: Compress, Transport, and Sync at Scale
52+
- `video <https://vimeo.com/1136204802>`__
53+
* - SWAGGER: Sparse WAypoint Graph Generation for Efficient Routing
54+
- `video <https://vimeo.com/1136204717>`__
55+
* - Mapping Together: Collaborative SLAM for Distributed Robot Fleets
56+
- `video <https://vimeo.com/1136163914>`__
57+
* - Roadmap-Explorer: A fast and reliable robot exploration module
58+
- `video <https://vimeo.com/1136177427>`__
59+
* - Peer-2-Peer Agriculture Robotics Communication, Planning, Coverage ...
60+
- `video <https://vimeo.com/1136163436>`__
61+
* - From Sensors to Sensei: Mastering ROS Hardware with Analog Devices
62+
- `video <https://vimeo.com/1136158125>`__
63+
* - Help Me with the Bags: Quick & Easy ROS 2 Data Handling
64+
- `video <https://vimeo.com/1136377079>`__
65+
* - Open-source robotics observability at scale!
66+
- `video <https://vimeo.com/1136163245>`__
67+
* - Simplifying Diagnostics: A Ready to Use Robot Webserver
68+
- `video <https://vimeo.com/1136204915>`__
69+
* - Detecting Complex Events in ROS Data
70+
- `video <https://vimeo.com/1136157744>`__
71+
* - ROS 2 logging subsystem and alternative syslog implementation
72+
- `video <https://vimeo.com/1136772381>`__
73+
* - Traceability System for Autonomous Robots
74+
- `video <https://vimeo.com/1136377674>`__
75+
* - ⚡Lightning Talks 1⚡
76+
- `video <https://vimeo.com/1136163574>`__
77+
* - Open-RMF Project Update
78+
- `video <https://vimeo.com/1136163138>`__
79+
* - Robots at Your Service: Deploying Open-RMF in Singapore’s Hospitality Industry
80+
- `video <https://vimeo.com/1136206211>`__
81+
* - Optimizing Hospital Robotics Deployments with Open RMF
82+
- `video <https://vimeo.com/1136163298>`__
83+
* - Orchestrating Interoperable Indoor Robots at Scale with Open-RMF...
84+
- `video <https://vimeo.com/1136163354>`__
85+
* - Workflows for multi-agent orchestration
86+
- `video <https://vimeo.com/1136377685>`__
87+
* - Gazebo Project Update
88+
- `video <https://vimeo.com/1136158328>`__
89+
* - Infrastructure Project Update
90+
- `video <https://vimeo.com/1136158416>`__
91+
* - ⚡ Lightning Talks 2⚡
92+
- `video <https://vimeo.com/1136158629>`__
93+
* - Our Ten Most Common ROS Questions Answered
94+
- `video <https://vimeo.com/1136376218>`__
95+
* - Practical guide for ROS 2 on Windows
96+
- `video <https://vimeo.com/1136377428>`__
97+
* - Solving ROS package management with Pixi and RoboStack
98+
- `video <https://vimeo.com/1136377632>`__
99+
* - Escape Velocity: Smarter, Cleaner ROS 2 Launch Patterns
100+
- `video <https://vimeo.com/1136376252>`__
101+
* - Build, Iterate, Deploy - A Modular ROS 2 Workflow that Scales
102+
- `video <https://vimeo.com/1136370578>`__
103+
* - Toward Scalable Collaborative Robot Controllers: Internalizing ROS 2 with Zenoh
104+
- `video <https://vimeo.com/1136204650>`__
105+
* - Motions Made Easy: Simplifying Repetitive Robot Motions
106+
- `video <https://vimeo.com/1136163966>`__
107+
* - Running ROS natively on an industrial robot's control box
108+
- `video <https://vimeo.com/1136205077>`__
109+
* - ros2_control goes Industrial
110+
- `video <https://vimeo.com/1136205404>`__
111+
* - Transforming Robotics with Auto Bots from Outer Space
112+
- `video <https://vimeo.com/1136204579>`__
113+
* - Real-Time Meets Cloud Native - ROS 2 on RTOS and Linux with Kubernetes
114+
- `video <https://vimeo.com/1136204466>`__
115+
* - ROS 2: The Backbone for Physical AI
116+
- `video <https://vimeo.com/1136205583>`__
117+
* - From Simulation to Soil: Lessons from a ROS 2-Powered Tractor
118+
- `video <https://vimeo.com/1136158260>`__
119+
* - Easy ROS-based AI Robot Development with genesis/libtorch
120+
- `video <https://vimeo.com/1136370681>`__
121+
* - PlanSys2, the ROS 2 Planning System: Past, present and future
122+
- `video <https://vimeo.com/1136377384>`__
123+
* - Building Foundation Models for Generalist Robots: Insights ...
124+
- `video <https://vimeo.com/1136370637>`__
125+
* - Introducing rclrs: the ROS 2 client library for Rust
126+
- `video <https://vimeo.com/1136376117>`__
127+
* - Realistic Terrain Simulation in Gazebo
128+
- `video <https://vimeo.com/1136377469>`__
129+
* - Evaluation of ROS 2 Simulators 2025
130+
- `video <https://vimeo.com/1136157883>`__
131+
* - Ray-Tracing Everywhere: Vendor Agnostic Ray Tracing in Gazebo
132+
- `video <https://vimeo.com/1136163508>`__
133+
* - Introducing the new ROS simulation standard
134+
- `video <https://vimeo.com/1136376172>`__
135+
* - From Off-the-Shelf Drones to Research Platforms
136+
- `video <https://vimeo.com/1136158052>`__
15137

138+
.. group-tab:: 2024
16139
.. list-table::
17140
:header-rows: 1
18141

source/Tutorials/Advanced/Recording-A-Bag-From-Your-Own-Node-CPP.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ Inside the ``ros2_ws/src/bag_recorder_nodes/src`` directory, create a new file c
9494

9595
writer_->open("my_bag");
9696

97-
auto subscription_callback_lambda = [this](std::shared_ptr<rclcpp::SerializedMessage> msg){
97+
auto subscription_callback_lambda = [this](std::shared_ptr<const rclcpp::SerializedMessage> msg){
9898
rclcpp::Time time_stamp = this->now();
9999

100100
writer_->write(msg, "chatter", "std_msgs/msg/String", time_stamp);
@@ -144,7 +144,7 @@ We will write data to the bag in the callback.
144144

145145
.. code-block:: C++
146146

147-
auto subscription_callback_lambda = [this](std::shared_ptr<rclcpp::SerializedMessage> msg){
147+
auto subscription_callback_lambda = [this](std::shared_ptr<const rclcpp::SerializedMessage> msg){
148148
rclcpp::Time time_stamp = this->now();
149149

150150
writer_->write(msg, "chatter", "std_msgs/msg/String", time_stamp);
@@ -162,7 +162,7 @@ We do this for two reasons.
162162

163163
.. code-block:: C++
164164

165-
auto subscription_callback_lambda = [this](std::shared_ptr<rclcpp::SerializedMessage> msg){
165+
auto subscription_callback_lambda = [this](std::shared_ptr<const rclcpp::SerializedMessage> msg){
166166

167167
Within the subscription callback, the first thing to do is determine the time stamp to use for the stored message.
168168
This can be anything appropriate to your data, but two common values are the time at which the data was produced, if known, and the time it is received.

source/Tutorials/Advanced/Simulators/Webots/Code/MyRobotDriver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void MyRobotDriver::init(
2525

2626
cmd_vel_subscription_ = node->create_subscription<geometry_msgs::msg::Twist>(
2727
"/cmd_vel", rclcpp::SensorDataQoS().reliable(),
28-
[this](const geometry_msgs::msg::Twist::SharedPtr msg){
28+
[this](const geometry_msgs::msg::Twist::ConstSharedPtr msg){
2929
this->cmd_vel_msg.linear = msg->linear;
3030
this->cmd_vel_msg.angular = msg->angular;
3131
}

source/Tutorials/Advanced/Simulators/Webots/Code/ObstacleAvoider.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,26 @@ ObstacleAvoider::ObstacleAvoider() : Node("obstacle_avoider") {
77

88
left_sensor_sub_ = create_subscription<sensor_msgs::msg::Range>(
99
"/left_sensor", 1,
10-
[this](const sensor_msgs::msg::Range::SharedPtr msg){
10+
[this](const sensor_msgs::msg::Range::ConstSharedPtr msg){
1111
return this->leftSensorCallback(msg);
1212
}
1313
);
1414

1515
right_sensor_sub_ = create_subscription<sensor_msgs::msg::Range>(
1616
"/right_sensor", 1,
17-
[this](const sensor_msgs::msg::Range::SharedPtr msg){
17+
[this](const sensor_msgs::msg::Range::ConstSharedPtr msg){
1818
return this->rightSensorCallback(msg);
1919
}
2020
);
2121
}
2222

2323
void ObstacleAvoider::leftSensorCallback(
24-
const sensor_msgs::msg::Range::SharedPtr msg) {
24+
const sensor_msgs::msg::Range::ConstSharedPtr msg) {
2525
left_sensor_value = msg->range;
2626
}
2727

2828
void ObstacleAvoider::rightSensorCallback(
29-
const sensor_msgs::msg::Range::SharedPtr msg) {
29+
const sensor_msgs::msg::Range::ConstSharedPtr msg) {
3030
right_sensor_value = msg->range;
3131

3232
auto command_message = std::make_unique<geometry_msgs::msg::Twist>();

source/Tutorials/Advanced/Simulators/Webots/Code/ObstacleAvoider.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ class ObstacleAvoider : public rclcpp::Node {
99
explicit ObstacleAvoider();
1010

1111
private:
12-
void leftSensorCallback(const sensor_msgs::msg::Range::SharedPtr msg);
13-
void rightSensorCallback(const sensor_msgs::msg::Range::SharedPtr msg);
12+
void leftSensorCallback(const sensor_msgs::msg::Range::ConstSharedPtr msg);
13+
void rightSensorCallback(const sensor_msgs::msg::Range::ConstSharedPtr msg);
1414

1515
rclcpp::Publisher<geometry_msgs::msg::Twist>::SharedPtr publisher_;
1616
rclcpp::Subscription<sensor_msgs::msg::Range>::SharedPtr left_sensor_sub_;

source/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,5 +263,3 @@ Related content
263263
---------------
264264

265265
The turtlesim package can be found in the `ros_tutorials <https://github.com/ros/ros_tutorials/tree/{REPOS_FILE_BRANCH}/turtlesim>`_ repo.
266-
267-
`This community contributed video <https://youtu.be/xwT7XWflMdc>`_ demonstrates many of the items covered in this tutorial.

source/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,11 @@ This allows the installed files to be changed by changing the files in the ``sou
184184

185185
.. code-block:: console
186186
187-
$ colcon build --symlink-install --merge-install
187+
$ colcon build --merge-install
188188
189189
Windows doesn't allow long paths, so ``merge-install`` will combine all the paths into the ``install`` directory.
190+
On Windows, you need special permissions to create symbolic links, so ``--symlink-install`` is not used by default.
191+
To use it, you need to run the command as administrator or enable developer mode in system settings.
190192

191193
.. tip::
192194

source/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Broadcaster-Cpp.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ Open the file using your preferred text editor.
101101
stream << "/" << turtlename_.c_str() << "/pose";
102102
std::string topic_name = stream.str();
103103

104-
auto handle_turtle_pose = [this](const std::shared_ptr<turtlesim_msgs::msg::Pose> msg){
104+
auto handle_turtle_pose = [this](const std::shared_ptr<const turtlesim_msgs::msg::Pose> msg){
105105
geometry_msgs::msg::TransformStamped t;
106106

107107
// Read message content and assign it to

0 commit comments

Comments
 (0)