Skip to content

Commit

Permalink
Added preliminary URDF models for 410 and 430 camera peripherials
Browse files Browse the repository at this point in the history
  • Loading branch information
mattcurfman committed May 8, 2017
1 parent 3c73232 commit 8385004
Show file tree
Hide file tree
Showing 8 changed files with 478 additions and 9 deletions.
17 changes: 8 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# ROS* support for Intel® RealSense™ R410 camera
# ROS* support for Intel® RealSense™ R410 and 430 cameras

Version 2.5.3

## Features
This package illustrates how to develop OSRF® ROS* applications using the Intel® RealSense™ R410 camera.
This package illustrates how to develop OSRF® ROS* applications using the Intel® RealSense™ R410 and R430 camera.

**Important:** This is pre-release software, please read the known issues below

**Note:** This pre-release software requires Intel RealSense R410 camera FW 5.6.4.0 or newer. A warning message will be displayed if the software finds camera FW that is older.
**Note:** This pre-release software requires Intel RealSense R410 or R430 camera FW 5.6.4.0 or newer. A warning message will be displayed if the software finds camera FW that is older.

## Installation Instructions

Expand Down Expand Up @@ -43,14 +43,14 @@ source ~/.bashrc
```

### Step 2: Install Intel RealSense Support for ROS
After Step 1 above is completed, the additional steps below will compile support for the Intel RealSense R410 camera, from source.
After Step 1 above is completed, the additional steps below will compile support for the Intel RealSense camera, from source.

**Note:** <path_to_realsense_ros_r410.tar.bz2> refers to the archive you received from your customer representative or through the VIP portal. Please substitute <path_to_realsense_ros_r410.tar.bz2> with the actual archive filename you received.
**Note:** <path_to_realsense_ros_r410_r430.tar.bz2> refers to the archive you received from your customer representative or through the VIP portal. Please substitute <path_to_realsense_ros_r410_r430.tar.bz2> with the actual archive filename you received.
```bash
mkdir -p catkin_ws/src
cd catkin_ws/src/
catkin_init_workspace
tar xv <path_to_realsense_ros_r410.tar.bz2>
tar xv <path_to_realsense_ros_r410_r430.tar.bz2>
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
Expand Down Expand Up @@ -90,9 +90,8 @@ This will open RViz and display the camera pointcloud and laser scan
Although not built as part of this ROS package, the provided librealsense2 library contains additional standalone utilities for Linux and the Intel RealSense camera, including viewers with full control for all camera parameteters. Please see the installation guide in librealsense2\README.md for details on compiling and using these utilities.

## Known Issues
* This pre-release software package requires Intel RealSense R410 camera firmware 5.6.4.0 or newer. Although it is not built by the ROS instructions above, the librealsense2 package can be built on the commandline using CMake with the parameter "-DBUILD_EXAMPLES-on", which will build a utility called 'cpp-enumerate'. This utility will print the version number of your camera
* This ROS node currently only supports the Intel RealSense R410 camera model
* This ROS node does not currently provide URDF models for the camera.
* This pre-release software package requires Intel RealSense camera firmware 5.6.4.0 or newer. Although it is not built by the ROS instructions above, the librealsense2 package can be built on the commandline using CMake with the parameter "-DBUILD_EXAMPLES-on", which will build a utility called 'cpp-enumerate'. This utility will print the version number of your camera
* This ROS node currently only supports the Intel RealSense R410 and R430 camera models
* This ROS node does not currently provide any dynamic reconfigure support for camera properties.
* This ROS node does not currently provide support for using the RGBD package, but does support generation of a built-in point cloud topic stream.
* This ROS node currently only provides the Depth stream from the camera sensor. Future versions of the node will provide access to all camera streams.
Expand Down
8 changes: 8 additions & 0 deletions realsense_ros_camera/launch/view_r410_model.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense_ros_camera)/urdf/test_r410_camera.urdf.xacro'" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)"/>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense_ros_camera)/rviz/urdf.rviz" required="true" />
</launch>
8 changes: 8 additions & 0 deletions realsense_ros_camera/launch/view_r430_model.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense_ros_camera)/urdf/test_r430_camera.urdf.xacro'" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)"/>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense_ros_camera)/rviz/urdf.rviz" required="true" />
</launch>
192 changes: 192 additions & 0 deletions realsense_ros_camera/rviz/urdf.rviz
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /RobotModel1
- /RobotModel1/Link/Joint Tree1
- /RobotModel1/Link/Joint Tree1/base_link1
- /RobotModel1/Link/Joint Tree1/base_link1/Details1
Splitter Ratio: 0.636029422
Tree Height: 595
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.588679016
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Experimental: false
Name: Time
SyncMode: 0
SyncSource: ""
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.0299999993
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz/RobotModel
Collision Enabled: false
Enabled: true
Link/Joint Tree:
All Links Enabled: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
Link Tree Style: Tree of links and joints
base_link:
Details:
Alpha: 1
Show Axes: true
Show Trail: false
camera_joint:
Details:
Show Axes: false
Value: true
camera_link:
Details:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
camera_rgb_joint:
Details:
Show Axes: false
camera_rgb_frame:
Details:
Alpha: 1
Show Axes: false
Show Trail: false
camera_depth_joint:
Details:
Show Axes: false
camera_depth_frame:
Details:
Alpha: 1
Show Axes: false
Show Trail: false
camera_depth_optical_joint:
Details:
Show Axes: false
camera_depth_optical_frame:
Details:
Alpha: 1
Show Axes: false
Show Trail: false
camera_rgb_optical_joint:
Details:
Show Axes: false
camera_rgb_optical_frame:
Details:
Alpha: 1
Show Axes: false
Show Trail: false
Name: RobotModel
Robot Description: robot_description
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
- Class: rviz/TF
Enabled: false
Frame Timeout: 15
Frames:
All Enabled: true
Marker Scale: 1
Name: TF
Show Arrows: true
Show Axes: true
Show Names: true
Tree:
{}
Update Interval: 0
Value: false
Enabled: true
Global Options:
Background Color: 48; 48; 48
Fixed Frame: base_link
Frame Rate: 30
Name: root
Tools:
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/MoveCamera
- Class: rviz/Select
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Topic: /initialpose
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
Single click: true
Topic: /clicked_point
Value: true
Views:
Current:
Class: rviz/ThirdPersonFollower
Distance: 0.409323573
Enable Stereo Rendering:
Stereo Eye Separation: 0.0599999987
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.0500000007
Name: Current View
Near Clip Distance: 0.00999999978
Pitch: 0
Target Frame: <Fixed Frame>
Value: ThirdPersonFollower (rviz)
Yaw: 0
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 876
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd000000040000000000000232000002e2fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000002e2000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002e2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000028000002e2000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000055f0000003efc0100000002fb0000000800540069006d006501000000000000055f0000030000fffffffb0000000800540069006d0065010000000000000450000000000000000000000212000002e200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1375
X: 65
Y: 24
114 changes: 114 additions & 0 deletions realsense_ros_camera/urdf/_r410.urdf.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0"?>

<!--
License: Apache 2.0. See LICENSE file in root directory.
Copyright(c) 2017 Intel Corporation. All Rights Reserved
This is the URDF model for the Intel RealSense 410 camera, in it's
aluminum peripherial evalution case.
-->

<robot name="sensor_r410" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:property name="M_PI" value="3.1415926535897931" />

<!-- The following values are approximate, and the camera node
publishing TF values with actual calibrated camera extrinsic values -->
<xacro:property name="r410_cam_depth_to_left_ir_offset" value="-0.0275"/>
<xacro:property name="r410_cam_depth_to_right_ir_offset" value="0.0275"/>

<!-- The following values model the aluminum peripherial case for the
R410 camera, with the camera joint represented by the actual
peripherial camera tripod mount -->
<xacro:property name="r410_cam_width" value="0.099"/>
<xacro:property name="r410_cam_height" value="0.035"/>
<xacro:property name="r410_cam_depth" value="0.0185"/>
<xacro:property name="r410_cam_mount_from_center_offset" value=".0375"/>

<!-- The following offset is relative the the physical R410 camera peripherial
camera tripod mount -->
<xacro:property name="r410_cam_depth_px" value="0.00"/>
<xacro:property name="r410_cam_depth_py" value="-0.0425"/>
<xacro:property name="r410_cam_depth_pz" value="0.026"/>

<material name="aluminum">
<color rgba="0.5 0.5 0.5 1"/>
</material>

<xacro:macro name="sensor_r410" params="parent *origin">

<!-- camera body, with origin at bottom screw mount -->
<joint name="camera_joint" type="fixed">
<xacro:insert_block name="origin" />
<parent link="${parent}"/>
<child link="camera_link" />
</joint>

<link name="camera_link">
<visual>
<origin xyz="0 ${-r410_cam_mount_from_center_offset} ${r410_cam_height/2}" rpy="${M_PI/2} 0 ${M_PI/2}"/>
<geometry>
<box size="${r410_cam_width} ${r410_cam_height} ${r410_cam_depth}"/>
<!--<mesh filename="package://realsense_ros_camera/meshes/r410/r410.dae" />-->
</geometry>
<material name="aluminum"/>
</visual>
<collision>
<origin xyz="0.0 0.0 ${r410_cam_height/2}" rpy="0 0 0"/>
<geometry>
<box size="${r410_cam_depth} ${r410_cam_width} ${r410_cam_height}"/>
</geometry>
</collision>
<inertial>
<!-- The following are not reliable values, and should not be used for modeling -->
<mass value="0.564" />
<origin xyz="0 0 0" />
<inertia ixx="0.003881243" ixy="0.0" ixz="0.0" iyy="0.000498940" iyz="0.0" izz="0.003879257" />
</inertial>
</link>

<!-- camera depth joints and links -->
<joint name="camera_depth_joint" type="fixed">
<origin xyz="${r410_cam_depth_px} ${r410_cam_depth_py} ${r410_cam_depth_pz}" rpy="0 0 0"/>
<parent link="camera_link"/>
<child link="camera_depth_frame" />
</joint>
<link name="camera_depth_frame"/>

<joint name="camera_depth_optical_joint" type="fixed">
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
<parent link="camera_depth_frame" />
<child link="camera_depth_optical_frame" />
</joint>
<link name="camera_depth_optical_frame"/>

<!-- camera left IR joints and links -->
<joint name="camera_left_ir_joint" type="fixed">
<origin xyz="0 ${r410_cam_depth_to_left_ir_offset} 0" rpy="0 0 0" />
<parent link="camera_depth_frame" />
<child link="camera_left_ir_frame" />
</joint>
<link name="camera_left_ir_frame"/>

<joint name="camera_left_ir_optical_joint" type="fixed">
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
<parent link="camera_left_ir_frame" />
<child link="camera_left_ir_optical_frame" />
</joint>
<link name="camera_left_ir_optical_frame"/>

<!-- camera right IR joints and links -->
<joint name="camera_right_ir_joint" type="fixed">
<origin xyz="0 ${r410_cam_depth_to_right_ir_offset} 0" rpy="0 0 0" />
<parent link="camera_depth_frame" />
<child link="camera_right_ir_frame" />
</joint>
<link name="camera_right_ir_frame"/>

<joint name="camera_right_ir_optical_joint" type="fixed">
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
<parent link="camera_right_ir_frame" />
<child link="camera_right_ir_optical_frame" />
</joint>
<link name="camera_right_ir_optical_frame"/>
</xacro:macro>
</robot>
Loading

0 comments on commit 8385004

Please sign in to comment.