あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

・必要パッケージのインストール
sudo apt-get install python-rosinstall libglew-dev cmake
sudo apte-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev

・Pangolinのインストール
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

・ORB_SLAM2(本体)のコンパイル
git clone https://github.com/raulmur/ORB_SLAM2.git
cd ORB_SLAM2
chmod +x build.sh
./build.sh

・ORB_SLAM2(本体)のテスト
 ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz/

※データのダウンロードは以下のページから。
https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.tgz

・ORB_SLAM2(ROSノード)のコンパイル準備

・ORB_SLAM2(ROSノード)のコンパイル
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/PATH/ORB_SLAM2/Examples/ROS
chmod +x build_ros.sh
./build_ros.sh

・ORB_SLAM2(ROSノード)のテスト
7. ROS Examples のRunning Stereo Node参照

・RGBDノード

rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/d435.yaml /camera/rgb/image_raw:=/camera/color/image_raw /camera/depth_registered/image_raw:=/camera/depth/image_rect_raw


・urdfファイル
<?xml version="1.0"?>
<robot name="toybox">
<link name="base">
<visual>
<geometry>
<mesh filename="package://ptcam_description/meshes/toybox/model.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ptcam_description/meshes/toybox/model.dae"/>
</geometry>
</collision>
<inertial>
<mass value="1000"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
</link>
</robot>

・コマンドラインでspawn
rosrun gazebo_ros spawn_model -file toybox.urdf -urdf -model toybox

・pythonでspawn
#!/usr/bin/env python
import os, rospy, tf
from gazebo_msgs.srv import *
from geometry_msgs.msg import *

rospy.init_node("toybox")

rospy.wait_for_service("gazebo/spawn_urdf_model")
s = rospy.ServiceProxy("gazebo/spawn_urdf_model", SpawnModel)

dirname = os.path.dirname(os.path.abspath(__file__))
with open(dirname + "/../urdf/toybox.urdf", "r") as f:
toybox_xml = f.read()

orient = Quaternion(*tf.transformations.quaternion_from_euler(0, 0, 0))
pose = Pose(Point(0, 0, 0), orient)
s("toybox", toybox_xml, "", pose, "world")

・モーション作成
Cubism Editorでcmo3ファイルを読み込む。
プロジェクトのcmo3をタイムラインにドラッグ&ドロップ。
Shift押しながら赤ポチを動かして、キャラクタの大きさを調節。
タイムラインでモーションつける。
タイムライン上で右クリックし、フェードイン・アウトの設定で、
 設定対象をシーンにして、両方0秒に設定する。
モーションファイルを書き出し。

・model3.jsonにモーションを紐付ける
Cubism Viewerでmodel3.jsonファイルを読み込む。
モーションファイルをドラッグ&ドロップ。
model3.jsonファイルを上書き保存。
Motionsの下の" "の中にモーション名を書き込む。

・ティラノで動かす
model3.json, moc3, モーションファイル, テクスチャフォルダを、ティラノデータフォルダに配置。
あとは普通に読み込めば動かせる。

↑このページのトップヘ