realsense launch files updated

This commit is contained in:
Rooholla-KhorramBakht 2024-05-31 11:51:13 +08:00
parent c4fe32ad11
commit 1941516a60
9 changed files with 28 additions and 45 deletions

View File

@ -5,7 +5,7 @@ nav2:
@cd deploy && docker build --no-cache --tag go2py_nav2:latest -f docker/Dockerfile.nav2 .
nav2_start:
@ ./scripts/nav2_start
@ ./scripts/run_nav2.sh
messages:
@cd scripts && ./make_msgs.sh

View File

@ -22,10 +22,10 @@ git clone https://github.com/ros2/rmw_cyclonedds -b humble && git clone https://
cd .. && colcon build --packages-select cyclonedds && source /opt/ros/humble/setup.bash && colcon build
# copy the go2py ros2 nodes
COPY ros2_nodes/sportmode_nav2 /nav2_ws/src/sportmode_nav2
COPY ros2_nodes/m-explore-ros2 /nav2_ws/src/m-explore-ros2
COPY ros2_nodes/go2py_messages /nav2_ws/src/go2py_messages
RUN cd /nav2_ws && source /opt/ros/humble/setup.bash && source /unitree_ros2/cyclonedds_ws/install/setup.bash && colcon build --symlink-install
COPY ros2_nodes/sportmode_nav2 /home/nav2_ws/src/sportmode_nav2
COPY ros2_nodes/m-explore-ros2 /home/nav2_ws/src/m-explore-ros2
COPY ros2_nodes/go2py_messages /home/nav2_ws/src/go2py_messages
RUN cd /home/nav2_ws && source /opt/ros/humble/setup.bash && source /unitree_ros2/cyclonedds_ws/install/setup.bash && colcon build --symlink-install
# set the entrypoint to bash
ENTRYPOINT ["/bin/bash"]

View File

@ -9,33 +9,6 @@ from launch_ros.descriptions import ComposableNode
def generate_launch_description():
# RealSense
# realsense_config_file_path = os.path.join(
# get_package_share_directory('isaac_ros_h264_encoder'),
# 'config', 'realsense.yaml'
# )
realsense_config_file_path = 'realsense.yaml'
realsense_node = ComposableNode(
package='realsense2_camera',
plugin='realsense2_camera::RealSenseNodeFactory',
parameters=[realsense_config_file_path],
remappings=[
('infra1/image_rect_raw', 'go2/realsense/left/image_rect_raw_mono'),
('infra2/image_rect_raw', 'go2/realsense/right/image_rect_raw_mono'),
('color/image_raw', 'go2/realsense/color/image_raw_mono'),
('infra1/camera_info', 'go2/realsense/left/camera_info'),
('infra2/camera_info', 'go2/realsense/right/camera_info'),
('color/camera_info', 'go2/realsense/color/camera_info'),
('depth/camera_info', 'go2/realsense/depth/camera_info'),
('depth/color/points', 'go2/realsense/depth/color/points'),
('depth/image_rect_raw', 'go2/realsense/depth/image_rect_raw'),
('extrinsics/depth_to_accel', 'go2/realsense/extrinsics/depth_to_accel'),
('extrinsics/depth_to_color', 'go2/realsense/extrinsics/depth_to_color'),
('extrinsics/depth_to_gyro', 'go2/realsense/extrinsics/depth_to_gyro'),
('imu', 'go2/realsense/imu'),
]
)
color_format_converter_node = ComposableNode(
package='isaac_ros_image_proc',
plugin='nvidia::isaac_ros::image_proc::ImageFormatConverterNode',
@ -44,8 +17,8 @@ def generate_launch_description():
'encoding_desired': 'rgb8',
}],
remappings=[
('image_raw', 'go2/realsense/color/image_raw_mono'),
('image', 'go2/realsense/color/image_raw')]
('image_raw', '/go2/d455/color/image_raw'),
('image', '/go2/d455/color/image_raw_mono')]
)
color_encoder_node = ComposableNode(
@ -66,9 +39,10 @@ def generate_launch_description():
namespace='encoder',
package='rclcpp_components',
executable='component_container_mt',
composable_node_descriptions=[realsense_node,
composable_node_descriptions=[
color_format_converter_node,
color_encoder_node],
# color_encoder_node
],
output='screen'
)

View File

@ -8,16 +8,16 @@ from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
name='go2_cam',
namespace='go2/cam',
name='d455',
namespace='go2',
package='realsense2_camera',
executable='realsense2_camera_node',
parameters=[{
'enable_infra1': True,
'enable_infra2': True,
'enable_infra1': False,
'enable_infra2': False,
'enable_color': True,
'enable_depth': False,
'depth_module.emitter_enabled': 0,
'enable_depth': True,
'depth_module.emitter_enabled': 1,
'rgb_camera.profile':'640x480x30',
'depth_module.profile': '640x480x30',
'enable_gyro': True,
@ -25,6 +25,7 @@ def generate_launch_description():
'gyro_fps': 400,
'accel_fps': 200,
'unite_imu_method': 2,
'pointcloud.enable': True
# 'tf_publish_rate': 0.0
}]
)

View File

@ -34,3 +34,5 @@ align_depth: false
unite_imu_method: 2
gyro_fps: 400
accel_fps: 200
camera_namespace: ""
namespace: ""

View File

@ -18,6 +18,6 @@ RUN --mount=type=cache,target=/var/cache/apt \
--mount=type=bind,source=scripts/install-unitree-ros2.sh,target=/tmp/install-unitree-ros2.sh \
bash /tmp/install-unitree-ros2.sh
RUN apt install -y ros-humble-isaac-ros-h264-decoder ros-humble-isaac-ros-h264-encoder ros-humble-realsense2-camera
RUN apt install -y ros-humble-isaac-ros-h264-decoder ros-humble-isaac-ros-h264-encoder
USER $USERNAME

7
docs/nav2.md Normal file
View File

@ -0,0 +1,7 @@
# Nav2 with Go2
This notes describe the process getting an exploration and mapping sytem running on the robot using the Go2Py docker and configuration files. In this setup we use the following components:
- **ROS Robot Localization:** We use the EKF node of the ROS robot localization package to generate the odometry TF transformations based on the robot's buildin leg inertial odometry systm (`/utlidar/robot_odom`). The go2py_bridge listens to this topic and publishes `/go2/odom` messages re-stamped with dock's internal clock. The configuraiton parameters for this node are [here]().
- **ROS SLAM Toolbox:** FOR SLAM, we use the ROS SLAM toobox that takes the odometry frames from the localization node alongside the laser scan topics from the hesai LiDAR (`/go2/scan`) to make a 2D occupancy map of the environment and the transformation between the `odom` and `map` frame.
- **ROS2 Navigation:** Finally we use the ROS navigation2 to

View File

@ -1,2 +1,2 @@
CONFIG_IMAGE_KEY="ros2_humble.go2py"
CONFIG_IMAGE_KEY="ros2_humble.go2py.realsense"
CONFIG_DOCKER_SEARCH_DIRS=(../docker)

View File

@ -1 +0,0 @@
docker run --rm -it --privileged --network host -v $(pwd)/deploy/ros2_nodes/sportmode_nav2:/home/nav2_ws/src/sportmode_nav2 -v /dev/*:/dev/* -v /etc/localtime:/etc/localtime:ro --runtime nvidia go2py_nav2:latest