walk these ways bug fixed and realsense launch files with isaac compression nodes are added.

This commit is contained in:
Rooholla-KhorramBakht 2024-05-29 15:20:07 -04:00
parent 97d489dd9f
commit 79686698eb
4 changed files with 117 additions and 4 deletions

View File

@ -255,12 +255,12 @@ class WalkTheseWaysAgent:
for i, policy_joint_name in enumerate(policy_joint_names): for i, policy_joint_name in enumerate(policy_joint_names):
id = np.where([name == policy_joint_name for name in unitree_joint_names])[0][0] id = np.where([name == policy_joint_name for name in unitree_joint_names])[0][0]
policy_to_unitree_map.append((i, id)) policy_to_unitree_map.append((i, id))
self.policy_to_unitree_map = np.array(policy_to_unitree_map) self.policy_to_unitree_map = np.array(policy_to_unitree_map).astype(np.uint32)
for i, unitree_joint_name in enumerate(unitree_joint_names): for i, unitree_joint_name in enumerate(unitree_joint_names):
id = np.where([name == unitree_joint_name for name in policy_joint_names])[0][0] id = np.where([name == unitree_joint_name for name in policy_joint_names])[0][0]
unitree_to_policy_map.append((i, id)) unitree_to_policy_map.append((i, id))
self.unitree_to_policy_map = np.array(unitree_to_policy_map) self.unitree_to_policy_map = np.array(unitree_to_policy_map).astype(np.uint32)
self.default_dof_pos = np.array( self.default_dof_pos = np.array(
[ [
@ -343,8 +343,8 @@ class WalkTheseWaysAgent:
joint_state = self.robot.getJointStates() joint_state = self.robot.getJointStates()
if joint_state is not None: if joint_state is not None:
self.gravity_vector = self.robot.getGravityInBody() self.gravity_vector = self.robot.getGravityInBody()
self.dof_pos = joint_state['q'][self.unitree_to_policy_map[:, 1]] self.dof_pos = np.array(joint_state['q'])[self.unitree_to_policy_map[:, 1]]
self.dof_vel = joint_state['dq'][self.unitree_to_policy_map[:, 1]] self.dof_vel = np.array(joint_state['dq'])[self.unitree_to_policy_map[:, 1]]
if reset_timer: if reset_timer:
self.reset_gait_indices() self.reset_gait_indices()

View File

@ -0,0 +1,75 @@
import os
from ament_index_python.packages import get_package_share_directory
import launch
from launch.actions import ExecuteProcess
from launch_ros.actions import ComposableNodeContainer
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',
name='image_format_node_color',
parameters=[{
'encoding_desired': 'rgb8',
}],
remappings=[
('image_raw', 'go2/realsense/color/image_raw_mono'),
('image', 'go2/realsense/color/image_raw')]
)
color_encoder_node = ComposableNode(
package='isaac_ros_h264_encoder',
plugin='nvidia::isaac_ros::h264_encoder::EncoderNode',
name='color_encoder_node',
parameters=[{
'input_width': 640,
'input_height': 480,
}],
remappings=[
('image_raw', 'go2/realsense/color/image_raw_mono'),
('image_compressed', 'go2/realsense/color/image_raw_compressed')]
)
container = ComposableNodeContainer(
name='encoder_container',
namespace='encoder',
package='rclcpp_components',
executable='component_container_mt',
composable_node_descriptions=[realsense_node,
color_format_converter_node,
color_encoder_node],
output='screen'
)
return (launch.LaunchDescription([container]))

View File

@ -0,0 +1,36 @@
device_type: ''
serial_no: ''
usb_port_id: ''
rgb_camera:
profile: '640x480x60'
color_qos: "RELIABILITY_QOS_POLICY"
depth_module:
profile: '640x480x15'
emitter_enabled: 1
emitter_on_off: false
depth_qos: "SENSOR_DATA"
depth_info_qos: "SYSTEM_DEFAULT"
infra_qos: "SENSOR_DATA"
enable_accel: true
enable_color: true
enable_depth: true
enable_gyro: true
enable_infra1: false
enable_infra2: false
pointcloud:
enable: true
pointcloud_texture_index: 0
pointcloud_texture_stream: RS2_STREAM_ANY
enable_sync: true
align_depth: false
unite_imu_method: 2
gyro_fps: 400
accel_fps: 200

View File

@ -18,4 +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 \ --mount=type=bind,source=scripts/install-unitree-ros2.sh,target=/tmp/install-unitree-ros2.sh \
bash /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
USER $USERNAME USER $USERNAME