├── .github ├── scripts │ └── sync_scripts.sh └── workflows │ └── check_tutorial_files.yaml ├── LICENSE ├── MobileRobotUITutorialProject ├── .gitignore ├── Assets │ ├── Models.meta │ ├── Models │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── texture.mat │ │ │ └── texture.mat.meta │ │ ├── Scaniverse 2023-05-25 162552.fbm.meta │ │ ├── Scaniverse 2023-05-25 162552.fbm │ │ │ ├── texture.jpg │ │ │ └── texture.jpg.meta │ │ ├── Scaniverse 2023-05-25 162552.fbx │ │ ├── Scaniverse 2023-05-25 162552.fbx.meta │ │ ├── maze.dae │ │ └── maze.dae.meta │ ├── OdometryViewer.meta │ ├── OdometryViewer │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── ArrowMaterial.mat │ │ │ ├── ArrowMaterial.mat.meta │ │ │ ├── ArrowMaterial2.mat │ │ │ ├── ArrowMaterial2.mat.meta │ │ │ ├── Arrows.fbx │ │ │ └── Arrows.fbx.meta │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── Arrows-bule.prefab │ │ │ ├── Arrows-bule.prefab.meta │ │ │ ├── Arrows-red.prefab │ │ │ └── Arrows-red.prefab.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── AMCLPoseViewer.cs │ │ │ ├── AMCLPoseViewer.cs.meta │ │ │ ├── OdometryViewer.cs │ │ │ └── OdometryViewer.cs.meta │ ├── PointCloud.meta │ ├── PointCloud │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── Sphere.mat │ │ │ └── Sphere.mat.meta │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── Sphere.prefab │ │ │ └── Sphere.prefab.meta │ │ ├── Scenes.meta │ │ ├── Scenes │ │ │ ├── PointCloudSample.unity │ │ │ └── PointCloudSample.unity.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── PointCloudLocator.cs │ │ │ └── PointCloudLocator.cs.meta │ ├── Resources.meta │ ├── Resources │ │ ├── GeometryCompassSettings.asset │ │ ├── GeometryCompassSettings.asset.meta │ │ ├── ROSConnectionPrefab.prefab │ │ └── ROSConnectionPrefab.prefab.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── Step1.unity │ │ ├── Step1.unity.meta │ │ ├── Step2.unity │ │ ├── Step2.unity.meta │ │ ├── Step3.unity │ │ ├── Step3.unity.meta │ │ ├── Step4.unity │ │ ├── Step4.unity.meta │ │ ├── Step5.unity │ │ ├── Step5.unity.meta │ │ ├── Step6.unity │ │ ├── Step6.unity.meta │ │ ├── Step7.unity │ │ ├── Step7.unity.meta │ │ ├── Step8.unity │ │ ├── Step8.unity.meta │ │ ├── Step9.unity │ │ └── Step9.unity.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── AMCLSubscriber.cs │ │ ├── AMCLSubscriber.cs.meta │ │ ├── CmdVelPublisher.cs │ │ ├── CmdVelPublisher.cs.meta │ │ ├── CmdVelSubscriber.cs │ │ ├── CmdVelSubscriber.cs.meta │ │ ├── ImageSubscriber.cs │ │ ├── ImageSubscriber.cs.meta │ │ ├── JoystickCmdVelPublisher.cs │ │ ├── JoystickCmdVelPublisher.cs.meta │ │ ├── LaserScanSubscriber.cs │ │ ├── LaserScanSubscriber.cs.meta │ │ ├── NavPosePublisher.cs │ │ ├── NavPosePublisher.cs.meta │ │ ├── OdomSubscriber.cs │ │ ├── OdomSubscriber.cs.meta │ │ ├── TfSubscriber.cs │ │ └── TfSubscriber.cs.meta │ ├── URDF.meta │ └── URDF │ │ ├── Materials.meta │ │ ├── Materials │ │ ├── Default.mat │ │ └── Default.mat.meta │ │ ├── raspimouse_description.meta │ │ ├── raspimouse_description │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── CMakeLists.txt.meta │ │ ├── LICENSE │ │ ├── LICENSE.meta │ │ ├── README.md │ │ ├── README.md.meta │ │ ├── launch.meta │ │ ├── launch │ │ │ ├── config.meta │ │ │ ├── config │ │ │ │ ├── urdf.rviz │ │ │ │ └── urdf.rviz.meta │ │ │ ├── display_urdf.launch │ │ │ ├── display_urdf.launch.meta │ │ │ ├── display_xacro.launch │ │ │ └── display_xacro.launch.meta │ │ ├── meshes.meta │ │ ├── meshes │ │ │ ├── dae.meta │ │ │ ├── dae │ │ │ │ ├── body.meta │ │ │ │ ├── body │ │ │ │ │ ├── RasPiMouse_body.dae │ │ │ │ │ ├── RasPiMouse_body.dae.meta │ │ │ │ │ ├── raspimouse_camera_mount.dae │ │ │ │ │ ├── raspimouse_camera_mount.dae.meta │ │ │ │ │ ├── raspimouse_top_plate.dae │ │ │ │ │ ├── raspimouse_top_plate.dae.meta │ │ │ │ │ ├── rt-logo.png │ │ │ │ │ └── rt-logo.png.meta │ │ │ │ ├── sensor.meta │ │ │ │ ├── sensor │ │ │ │ │ ├── urg_bottom_origin.dae │ │ │ │ │ ├── urg_bottom_origin.dae.meta │ │ │ │ │ ├── urg_optical_axis_center_origin.dae │ │ │ │ │ └── urg_optical_axis_center_origin.dae.meta │ │ │ │ ├── wheel.meta │ │ │ │ └── wheel │ │ │ │ │ ├── RasPiMouse_wheel.dae │ │ │ │ │ └── RasPiMouse_wheel.dae.meta │ │ │ ├── stl.meta │ │ │ └── stl │ │ │ │ ├── RasPiMouse_TopPlate.stl │ │ │ │ ├── RasPiMouse_TopPlate.stl.meta │ │ │ │ ├── RasPiMouse_base-metric.stl │ │ │ │ ├── RasPiMouse_base-metric.stl.meta │ │ │ │ ├── RasPiMouse_sensor-metric.stl │ │ │ │ ├── RasPiMouse_sensor-metric.stl.meta │ │ │ │ ├── RasPiMouse_wheel-metric.stl │ │ │ │ ├── RasPiMouse_wheel-metric.stl.meta │ │ │ │ ├── RasPiMouse_wheel-mm.stl │ │ │ │ ├── RasPiMouse_wheel-mm.stl.meta │ │ │ │ ├── URG-04LX-UG01.stl │ │ │ │ ├── URG-04LX-UG01.stl.meta │ │ │ │ ├── color.meta │ │ │ │ └── color │ │ │ │ ├── RasPiMouse_body_black.stl │ │ │ │ ├── RasPiMouse_body_black.stl.meta │ │ │ │ ├── RasPiMouse_body_gray.stl │ │ │ │ ├── RasPiMouse_body_gray.stl.meta │ │ │ │ ├── RasPiMouse_body_green.stl │ │ │ │ ├── RasPiMouse_body_green.stl.meta │ │ │ │ ├── RasPiMouse_body_red.stl │ │ │ │ ├── RasPiMouse_body_red.stl.meta │ │ │ │ ├── RasPiMouse_wheel_black.stl │ │ │ │ ├── RasPiMouse_wheel_black.stl.meta │ │ │ │ ├── RasPiMouse_wheel_gray.stl │ │ │ │ └── RasPiMouse_wheel_gray.stl.meta │ │ ├── model.config │ │ ├── model.config.meta │ │ ├── package.xml │ │ ├── package.xml.meta │ │ ├── urdf.meta │ │ └── urdf │ │ │ ├── body.meta │ │ │ ├── body │ │ │ ├── body.gazebo.xacro │ │ │ ├── body.gazebo.xacro.meta │ │ │ ├── body.urdf.xacro │ │ │ ├── body.urdf.xacro.meta │ │ │ ├── option.urdf.xacro │ │ │ └── option.urdf.xacro.meta │ │ │ ├── camera.meta │ │ │ ├── camera │ │ │ ├── camera.gazebo.xacro │ │ │ ├── camera.gazebo.xacro.meta │ │ │ ├── camera.urdf.xacro │ │ │ └── camera.urdf.xacro.meta │ │ │ ├── common.xacro │ │ │ ├── common.xacro.meta │ │ │ ├── raspimouse.urdf │ │ │ ├── raspimouse.urdf.meta │ │ │ ├── raspimouse.urdf.xacro │ │ │ ├── raspimouse.urdf.xacro.meta │ │ │ ├── raspimouse_with_urg.urdf │ │ │ ├── raspimouse_with_urg.urdf.meta │ │ │ ├── sensors.meta │ │ │ ├── sensors │ │ │ ├── lidar.gazebo.xacro │ │ │ ├── lidar.gazebo.xacro.meta │ │ │ ├── lidar.urdf.xacro │ │ │ ├── lidar.urdf.xacro.meta │ │ │ ├── lightsens.gazebo.xacro │ │ │ ├── lightsens.gazebo.xacro.meta │ │ │ ├── lightsens.urdf.xacro │ │ │ └── lightsens.urdf.xacro.meta │ │ │ ├── wheel.meta │ │ │ └── wheel │ │ │ ├── diffdrive.gazebo.xacro │ │ │ ├── diffdrive.gazebo.xacro.meta │ │ │ ├── wheel.urdf.xacro │ │ │ └── wheel.urdf.xacro.meta │ │ ├── raspimouse_with_urg.urdf │ │ └── raspimouse_with_urg.urdf.meta ├── Packages │ ├── manifest.json │ └── packages-lock.json └── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── MemorySettings.asset │ ├── NavMeshAreas.asset │ ├── PackageManagerSettings.asset │ ├── Packages │ └── com.unity.testtools.codecoverage │ │ └── Settings.json │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── SceneTemplateSettings.json │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── UnityConnectSettings.asset │ ├── VFXManager.asset │ ├── VersionControlSettings.asset │ ├── XRSettings.asset │ └── boot.config ├── README.md ├── ROS └── src │ └── raspimouse_description │ ├── .gitignore │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── launch │ ├── config │ │ └── urdf.rviz │ ├── display_urdf.launch │ └── display_xacro.launch │ ├── meshes │ ├── dae │ │ ├── body │ │ │ ├── raspimouse_body.dae │ │ │ ├── raspimouse_camera_mount.dae │ │ │ ├── raspimouse_top_plate.dae │ │ │ └── rt-logo.png │ │ ├── sensor │ │ │ ├── urg_bottom_origin.dae │ │ │ └── urg_optical_axis_center_origin.dae │ │ └── wheel │ │ │ └── raspimouse_wheel.dae │ └── stl │ │ ├── RasPiMouse_TopPlate.stl │ │ ├── RasPiMouse_base-metric.stl │ │ ├── RasPiMouse_sensor-metric.stl │ │ ├── RasPiMouse_wheel-metric.stl │ │ ├── RasPiMouse_wheel-mm.stl │ │ ├── URG-04LX-UG01.stl │ │ └── color │ │ ├── RasPiMouse_body_black.stl │ │ ├── RasPiMouse_body_gray.stl │ │ ├── RasPiMouse_body_green.stl │ │ ├── RasPiMouse_body_red.stl │ │ ├── RasPiMouse_wheel_black.stl │ │ └── RasPiMouse_wheel_gray.stl │ ├── model.config │ ├── package.xml │ └── urdf │ ├── body │ ├── body.gazebo.xacro │ ├── body.urdf.xacro │ └── option.urdf.xacro │ ├── camera │ ├── camera.gazebo.xacro │ └── camera.urdf.xacro │ ├── common.xacro │ ├── raspimouse.urdf │ ├── raspimouse.urdf.xacro │ ├── raspimouse_with_urg.urdf │ ├── sensors │ ├── lidar.gazebo.xacro │ ├── lidar.urdf.xacro │ ├── lightsens.gazebo.xacro │ └── lightsens.urdf.xacro │ └── wheel │ ├── diffdrive.gazebo.xacro │ └── wheel.urdf.xacro ├── THIRD-PARTY-NOTICES.md ├── UnityScripts ├── OdometryViewer │ ├── Materials.meta │ ├── Materials │ │ ├── ArrowMaterial.mat │ │ ├── ArrowMaterial.mat.meta │ │ ├── ArrowMaterial2.mat │ │ ├── ArrowMaterial2.mat.meta │ │ ├── Arrows.fbx │ │ └── Arrows.fbx.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Arrows-bule.prefab │ │ ├── Arrows-bule.prefab.meta │ │ ├── Arrows-red.prefab │ │ └── Arrows-red.prefab.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── AMCLPoseViewer.cs │ │ ├── AMCLPoseViewer.cs.meta │ │ ├── OdometryViewer.cs │ │ └── OdometryViewer.cs.meta ├── PointCloud │ ├── Materials.meta │ ├── Materials │ │ ├── Sphere.mat │ │ └── Sphere.mat.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Sphere.prefab │ │ └── Sphere.prefab.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── PointCloudSample.unity │ │ └── PointCloudSample.unity.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── PointCloudLocator.cs │ │ └── PointCloudLocator.cs.meta └── Scripts │ ├── AMCLSubscriber.cs │ ├── AMCLSubscriber.cs.meta │ ├── CmdVelPublisher.cs │ ├── CmdVelPublisher.cs.meta │ ├── CmdVelSubscriber.cs │ ├── CmdVelSubscriber.cs.meta │ ├── ImageSubscriber.cs │ ├── ImageSubscriber.cs.meta │ ├── JoystickCmdVelPublisher.cs │ ├── JoystickCmdVelPublisher.cs.meta │ ├── LaserScanSubscriber.cs │ ├── LaserScanSubscriber.cs.meta │ ├── NavPosePublisher.cs │ ├── NavPosePublisher.cs.meta │ ├── OdomSubscriber.cs │ ├── OdomSubscriber.cs.meta │ ├── TfSubscriber.cs │ └── TfSubscriber.cs.meta └── docs ├── appendix.md ├── images ├── appendix-1.png ├── appendix-10.gif ├── appendix-2.png ├── appendix-3.png ├── appendix-4.png ├── appendix-5.png ├── appendix-6.png ├── appendix-7.png ├── appendix-8.png ├── appendix-9.png ├── intro0-1.jpg ├── intro1-1-1.png ├── intro1-1.png ├── intro1-2.jpg ├── intro1-3.png ├── intro1-4.png ├── intro2-1-1.gif ├── intro2-1.png ├── intro2-2.png ├── intro3-0.png ├── intro3-1.png ├── intro3-2.png ├── intro3-3.png ├── intro3-4.png ├── intro3-5.png ├── intro3-6.png ├── intro3-7.png ├── raspimouse_urg_axis_ros.png ├── raspimouse_urg_axis_unity.png ├── step0-1.png ├── step0-2.png ├── step0-3.png ├── step0-4.gif ├── step0-5.png ├── step0-6.png ├── step1-1.png ├── step1-10.gif ├── step1-11.png ├── step1-2.png ├── step1-3.png ├── step1-4.png ├── step1-5.gif ├── step1-6.png ├── step1-7.png ├── step1-8.png ├── step1-9.png ├── step10-1.png ├── step10-2.png ├── step10-3.png ├── step10-4.png ├── step2-1.png ├── step2-2.png ├── step2-3.gif ├── step2-4.gif ├── step2-5-1.png ├── step2-5.png ├── step2-6-1.png ├── step2-6-2.png ├── step2-6.png ├── step2-7.png ├── step3-1-1.png ├── step3-1.png ├── step3-10.png ├── step3-11.png ├── step3-12.gif ├── step3-13.png ├── step3-14.gif ├── step3-15.png ├── step3-16.gif ├── step3-17.gif ├── step3-18.gif ├── step3-19.png ├── step3-2.png ├── step3-20.png ├── step3-21.png ├── step3-22.png ├── step3-23.png ├── step3-25.png ├── step3-26-1.png ├── step3-26.gif ├── step3-27.png ├── step3-29.png ├── step3-3.png ├── step3-30.gif ├── step3-31.png ├── step3-4.png ├── step3-5.png ├── step3-6-1.png ├── step3-6.png ├── step3-7.png ├── step3-8.png ├── step3-9.png ├── step4-100.png ├── step4-101.png ├── step4-5.png ├── step4-6.gif ├── step4-7.gif ├── step4-8.gif ├── step4-99.png ├── step5-1.png ├── step5-2.png ├── step5-3.gif ├── step5-4.gif ├── step5-5.gif ├── step5-6.png ├── step5-7.png ├── step6-1.png ├── step6-2.png ├── step6-3.gif ├── step6-4.gif ├── step6-5.gif ├── step7-1.png ├── step7-2.png ├── step7-3.png ├── step7-4.png ├── step7-5.gif ├── step7-6.png ├── step7-7.gif ├── step8-1.png ├── step8-10.png ├── step8-11.gif ├── step8-2.png ├── step8-3.png ├── step8-4.png ├── step8-5-2.png ├── step8-5.png ├── step8-6.png ├── step8-7.png ├── step8-8.png ├── step8-9.png ├── step8-97.png ├── step8-98.gif ├── step8-99.png ├── step9-0.png ├── step9-1.png ├── step9-2.png ├── step9-3.png ├── step9-4.png ├── step9-5.png ├── step9-6.gif ├── step9-7.gif └── step9-8.png ├── intro0.md ├── intro1.md ├── intro2.md ├── intro3.md ├── step0.md ├── step1.md ├── step2.md ├── step3.md ├── step4.md ├── step5.md ├── step6.md ├── step7.md ├── step8.md └── step9.md /.github/scripts/sync_scripts.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash -eu 2 | 3 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../../; pwd) 4 | echo "Run sync script in $SRC_DIR" 5 | rsync -av --delete $SRC_DIR/MobileRobotUITutorialProject/Assets/Scripts/ $SRC_DIR/UnityScripts/Scripts 6 | rsync -av --delete $SRC_DIR/MobileRobotUITutorialProject/Assets/OdometryViewer/ $SRC_DIR/UnityScripts/OdometryViewer 7 | rsync -av --delete $SRC_DIR/MobileRobotUITutorialProject/Assets/PointCloud/ $SRC_DIR/UnityScripts/PointCloud 8 | -------------------------------------------------------------------------------- /.github/workflows/check_tutorial_files.yaml: -------------------------------------------------------------------------------- 1 | name: Check for the tutorial update 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - "MobileRobotUITutorialProject/**" 7 | - "UnityScripts/**" 8 | 9 | jobs: 10 | check-tutorial-files: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | 15 | - name: File sync 16 | run: | 17 | ./.github/scripts/sync_scripts.sh 18 | git status | grep "working tree clean" && exit 0 || git status; exit 1; 19 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/218a941be92679ce67d0484547e3e142b2f5f6f0/Unity.gitignore 2 | 3 | # This .gitignore file should be placed at the root of your Unity project directory 4 | # 5 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 6 | # 7 | /[Ll]ibrary/ 8 | /[Tt]emp/ 9 | /[Oo]bj/ 10 | /[Bb]uild/ 11 | /[Bb]uilds/ 12 | /[Ll]ogs/ 13 | /[Uu]ser[Ss]ettings/ 14 | 15 | # MemoryCaptures can get excessive in size. 16 | # They also could contain extremely sensitive data 17 | /[Mm]emoryCaptures/ 18 | 19 | # Asset meta data should only be ignored when the corresponding asset is also ignored 20 | !/[Aa]ssets/**/*.meta 21 | 22 | # Uncomment this line if you wish to ignore the asset store tools plugin 23 | # /[Aa]ssets/AssetStoreTools* 24 | 25 | # Autogenerated Jetbrains Rider plugin 26 | /[Aa]ssets/Plugins/Editor/JetBrains* 27 | 28 | # Visual Studio cache directory 29 | .vs/ 30 | 31 | # Visual Studio Code cache directory 32 | .vscode/ 33 | 34 | .vsconfig 35 | 36 | # Gradle cache directory 37 | .gradle/ 38 | 39 | # Autogenerated VS/MD/Consulo solution and project files 40 | ExportedObj/ 41 | .consulo/ 42 | *.csproj 43 | *.unityproj 44 | *.sln 45 | *.suo 46 | *.tmp 47 | *.user 48 | *.userprefs 49 | *.pidb 50 | *.booproj 51 | *.svd 52 | *.pdb 53 | *.mdb 54 | *.opendb 55 | *.VC.db 56 | 57 | # Unity3D generated meta files 58 | *.pidb.meta 59 | *.pdb.meta 60 | *.mdb.meta 61 | 62 | # Unity3D generated file on crash reports 63 | sysinfo.txt 64 | 65 | # Builds 66 | *.apk 67 | *.aab 68 | *.unitypackage 69 | 70 | # Crashlytics generated file 71 | crashlytics-build.properties 72 | 73 | # Packed Addressables 74 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 75 | 76 | # Temporary auto-generated Android Assets 77 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 78 | /[Aa]ssets/[Ss]treamingAssets/aa/* 79 | 80 | Joystick Pack* 81 | 82 | Assets/TextMesh Pro 83 | Assets/TextMesh Pro.meta -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 583dea6e16c97934d860b0486d6c23eb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6877c169b598bd84f877739ae471c24d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models/Materials/texture.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 562b2d0306d15c246aae9e5d41b165f0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models/Scaniverse 2023-05-25 162552.fbm.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72344292e3e919743a2e0a477df02a99 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models/Scaniverse 2023-05-25 162552.fbm/texture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/Models/Scaniverse 2023-05-25 162552.fbm/texture.jpg -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Models/Scaniverse 2023-05-25 162552.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/Models/Scaniverse 2023-05-25 162552.fbx -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b667c924c59f744b933312a405fef05 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ecc449d3c05199d3d9a36925914ddc83 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Materials/ArrowMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d47c437c1d5e9499681fe7ed3747c1bc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Materials/ArrowMaterial2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f6bb532c1d924888adeefb2733bc4fb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Materials/Arrows.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/OdometryViewer/Materials/Arrows.fbx -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 742c48e0c8cbceaab9a23f8714d260b7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Prefabs/Arrows-bule.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: abdb200c6bbce4de78e32958500935de 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Prefabs/Arrows-red.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad09d02a767c94008a93473968a137c1 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87f6df19bfd592011b02a949280624a5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Scripts/AMCLPoseViewer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using Unity.Robotics.ROSTCPConnector; 5 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 6 | using RosMessageTypes.Geometry; 7 | using RosMessageTypes.Std; 8 | using RosMessageTypes.BuiltinInterfaces; 9 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 10 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 11 | 12 | public class AMCLPoseViewer : MonoBehaviour 13 | { 14 | [SerializeField] int lengthOfHistory = 10; 15 | [SerializeField] float AMCLPoseDistanceThreshold = 0.03f; 16 | [SerializeField] GameObject subscriberGameObject; 17 | 18 | [SerializeField] GameObject arrowPrefab; 19 | 20 | private List arrowList; 21 | 22 | private Vector3 previousRobotAMCLPosition = new Vector3(); 23 | 24 | void Start() 25 | { 26 | arrowList = new List(lengthOfHistory); 27 | } 28 | 29 | void Update() 30 | { 31 | Vector3 currentRobotAMCLPosition = subscriberGameObject.GetComponent().GetRobotAMCLPosition(); 32 | Quaternion currentRobotAMCLPosture = subscriberGameObject.GetComponent().GetRobotAMCLPosture(); 33 | 34 | if (Vector3.Distance(currentRobotAMCLPosition, previousRobotAMCLPosition) > AMCLPoseDistanceThreshold) 35 | { 36 | GameObject arrow = Instantiate(arrowPrefab); 37 | arrow.transform.parent = gameObject.transform; 38 | arrow.transform.position = currentRobotAMCLPosition; 39 | arrow.transform.rotation = currentRobotAMCLPosture; 40 | arrow.transform.Rotate(0, 180, 0); // ロボットの向きに合わせて矢印を回転 41 | if (arrowList.Count >= lengthOfHistory) { 42 | Destroy(arrowList[0]); 43 | arrowList.RemoveRange(0, 1); 44 | } 45 | arrowList.Add(arrow); 46 | previousRobotAMCLPosition = currentRobotAMCLPosition; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Scripts/AMCLPoseViewer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70015319e2b13f14e894b1fca34d3e23 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/OdometryViewer/Scripts/OdometryViewer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab0860b423006027b990607bba52dc93 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4947f1572b70820468bf9d1a33ec9e51 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d42bb1f0777419544b1d623f804a6109 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Materials/Sphere.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e39ed91c775f85c4dba745e0c45ca921 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60dddee5ab5f7e34e9a03a15726c2baf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Prefabs/Sphere.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a7d64f0df28e324684ffb16cae07465 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ccd62507e208984a84406ad23590d42 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Scenes/PointCloudSample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20e52f821fe5cae35b15481db148ee90 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8cc732510791c34bb5aa767aa2e8b5d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/PointCloud/Scripts/PointCloudLocator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb1c556465693b44a9f4d57e1adcdb72 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb1d2f9b011b03e4f8953d9d88dd2b7f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Resources/GeometryCompassSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 6ad8cf01110e54df290b36a418e91285, type: 3} 13 | m_Name: GeometryCompassSettings 14 | m_EditorClassIdentifier: 15 | m_ZAxisDirection: 0 16 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Resources/GeometryCompassSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8d0968563cc5dd42ab59ac4e4978b4a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Resources/ROSConnectionPrefab.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &34611241870135566 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7703670022446054040} 12 | - component: {fileID: 405378308558798647} 13 | m_Layer: 0 14 | m_Name: ROSConnectionPrefab 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!4 &7703670022446054040 21 | Transform: 22 | m_ObjectHideFlags: 0 23 | m_CorrespondingSourceObject: {fileID: 0} 24 | m_PrefabInstance: {fileID: 0} 25 | m_PrefabAsset: {fileID: 0} 26 | m_GameObject: {fileID: 34611241870135566} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_ConstrainProportionsScale: 0 31 | m_Children: [] 32 | m_Father: {fileID: 0} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!114 &405378308558798647 36 | MonoBehaviour: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | m_GameObject: {fileID: 34611241870135566} 42 | m_Enabled: 1 43 | m_EditorHideFlags: 0 44 | m_Script: {fileID: 11500000, guid: 7acef0b79454c9b4dae3f8139bc4ba77, type: 3} 45 | m_Name: 46 | m_EditorClassIdentifier: 47 | m_RosIPAddress: 192.168.3.183 48 | m_RosPort: 10000 49 | m_ConnectOnStart: 1 50 | m_KeepaliveTime: 1 51 | m_NetworkTimeoutSeconds: 2 52 | m_SleepTimeSeconds: 0.01 53 | m_ShowHUD: 1 54 | m_TFTopics: 55 | - /tf 56 | listenForTFMessages: 1 57 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Resources/ROSConnectionPrefab.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f7875c53fa47d241a837e27d3121ac0 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ea315d0fd7389c41b19996891e99ae3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step1.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f78a1d0f9875084cabcbddd83532c79 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step2.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20dfb268637bffb47ae1a825df26dece 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step3.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af2cdaf28e882a64385a970b2ffa194e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step4.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f92e53266a3bc24f9a1cd5a25d92502 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step5.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab3b85b4607d84a46bd2b0098d1ae873 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step6.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd3bb3d44f792334cac99bc917bdba23 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step7.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1d0208a2f51c4b4180154ba676e3d40 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step8.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38a55c14625eaf44ead9645ef687ea54 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scenes/Step9.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a12e08f9fc2d69f4eb920f0777206216 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01cd4335aa11f0c4a931c7fb1308c448 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/AMCLSubscriber.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.EventSystems; 6 | using Unity.Robotics.ROSTCPConnector; 7 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 8 | using RosMessageTypes.Geometry; 9 | using RosMessageTypes.Std; 10 | using RosMessageTypes.BuiltinInterfaces; 11 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 12 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 13 | 14 | public class AMCLSubscriber : MonoBehaviour 15 | { 16 | [SerializeField] string rosTopicName = "amcl_pose"; 17 | 18 | private Vector3 robotAMCLPosition = new Vector3(); 19 | private Quaternion robotAMCLPosture = new Quaternion(); 20 | 21 | void Start() 22 | { 23 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, AMCLPoseUpdate); 24 | } 25 | 26 | void AMCLPoseUpdate(PoseWithCovarianceStampedMsg AMCLPoseMessage) 27 | { 28 | PointMsg rosOdomPositionMsg = AMCLPoseMessage.pose.pose.position; 29 | QuaternionMsg rosOdomPostureMsg = AMCLPoseMessage.pose.pose.orientation; 30 | 31 | // 座標変換 32 | robotAMCLPosition = rosOdomPositionMsg.From(); 33 | robotAMCLPosture = rosOdomPostureMsg.From(); 34 | } 35 | 36 | public Vector3 GetRobotAMCLPosition() 37 | { 38 | return robotAMCLPosition; 39 | } 40 | 41 | public Quaternion GetRobotAMCLPosture() 42 | { 43 | return robotAMCLPosture; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/AMCLSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38301a37217da7642876833360f17837 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/CmdVelPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ce3c96156e9cae259dfd03a04c8616c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/CmdVelSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 各種ROSトピック形式 4 | using TwistMsg = RosMessageTypes.Geometry.TwistMsg; 5 | 6 | /// 7 | /// CmdVel(TwistMsg)を受信するためのクラス 8 | /// 主にデバッグ用に使うことを想定 9 | /// 10 | public class CmdVelSubscriber : MonoBehaviour 11 | { 12 | // 受信するROSのトピック名 13 | [SerializeField] string rosTopicName = "cmd_vel"; 14 | // デバッグモードとするかどうか(デバッグモードではコンソールにログを出力) 15 | [SerializeField] bool isDebugMode = true; 16 | 17 | /// 18 | /// 初期化用のイベント関数 19 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 20 | /// 21 | void Start() 22 | { 23 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, CmdVelUpdate); 24 | } 25 | 26 | /// 27 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 28 | /// 29 | void CmdVelUpdate(TwistMsg twistMessage) 30 | { 31 | if (isDebugMode) 32 | { 33 | Debug.Log(twistMessage); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/CmdVelSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3745db3e9359cd2fdad7685ade18554c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/ImageSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e9069025f49c0582a6d94301f283d14 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/JoystickCmdVelPublisher.cs: -------------------------------------------------------------------------------- 1 | /* CmdVelPublisher.csを参考 */ 2 | 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using UnityEngine; 6 | using Unity.Robotics.ROSTCPConnector; 7 | using TwistMsg = RosMessageTypes.Geometry.TwistMsg; 8 | 9 | public class JoystickCmdVelPublisher : MonoBehaviour 10 | { 11 | [SerializeField] string topicName = "cmd_vel"; 12 | private ROSConnection ros; 13 | private TwistMsg cmdVelMessage = new TwistMsg(); 14 | public VariableJoystick variableJoystick; 15 | private float timeSum = 0.0f; 16 | private const float timeBase = 0.1f; 17 | 18 | void Start() 19 | { 20 | ros = ROSConnection.GetOrCreateInstance(); 21 | ros.RegisterPublisher(topicName); 22 | cmdVelMessage.linear.x = 0.0f; 23 | cmdVelMessage.angular.z = 0.0f; 24 | Publish(); 25 | } 26 | 27 | void Update() 28 | { 29 | timeSum += Time.deltaTime; 30 | if(timeSum >= timeBase) { 31 | timeSum = 0.0f; 32 | cmdVelMessage.linear.x = variableJoystick.Vertical * 0.2f; 33 | cmdVelMessage.angular.z = variableJoystick.Horizontal * -1.0f; 34 | Publish(); 35 | } 36 | } 37 | 38 | public void Publish() 39 | { 40 | ros.Publish(topicName, cmdVelMessage); 41 | } 42 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/JoystickCmdVelPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b2563afcded61043a892960386d95e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/LaserScanSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 座標変換用 4 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 5 | // 各種ROSトピック形式 6 | using LaserScanMsg = RosMessageTypes.Sensor.LaserScanMsg; 7 | 8 | /// 9 | /// LiDARスキャンデータ(LaserScanMsg)を受信するためのクラス 10 | /// 主にスキャンデータの取得および座標変換に使い、描画は別のスクリプトを用意することを想定 11 | /// 12 | public class LaserScanSubscriber : MonoBehaviour 13 | { 14 | 15 | // 受信するROSのトピック名 16 | [SerializeField] string rosTopicName = "scan"; 17 | // デバッグモードとするかどうか(デバッグモードではコンソールにログを出力) 18 | [SerializeField] bool isDebugMode = true; 19 | 20 | private float[] scanRangesArray; 21 | private float scanAngleMin = 0; 22 | private float scanAngleMax = 0; 23 | 24 | /// 25 | /// 初期化用のイベント関数 26 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 27 | /// 28 | void Start() 29 | { 30 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, ScanUpdate); 31 | } 32 | 33 | 34 | /// 35 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 36 | /// 37 | void ScanUpdate(LaserScanMsg scanMessage) 38 | { 39 | if (isDebugMode) 40 | { 41 | Debug.Log(scanMessage); 42 | } 43 | 44 | scanRangesArray = scanMessage.ranges; 45 | scanAngleMax = scanMessage.angle_max; 46 | scanAngleMin = scanMessage.angle_min; 47 | } 48 | 49 | /// 50 | /// 外部からスキャン結果の配列にアクセスするための関数 51 | /// 52 | public float[] GetScanRanges() 53 | { 54 | return scanRangesArray; 55 | 56 | } 57 | 58 | /// 59 | /// 外部からスキャン結果にアクセスするための関数 60 | /// 61 | public float GetScanAngleMin() 62 | { 63 | return scanAngleMin; 64 | } 65 | 66 | /// 67 | /// 外部からスキャン結果にアクセスするための関数 68 | /// 69 | public float GetScanAngleMax() 70 | { 71 | return scanAngleMax; 72 | } 73 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/LaserScanSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8957dd394486cc24a646e1e9267143f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/NavPosePublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e99bcfd2b3887c049a50867a588cd773 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/OdomSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 座標変換用 4 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 5 | // 各種ROSトピック形式 6 | using OdometryMsg = RosMessageTypes.Nav.OdometryMsg; 7 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 8 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 9 | 10 | /// 11 | /// オドメトリデータ(OdometryMsg)を受信するためのクラス 12 | /// 主にオドメトリデータの取得および座標変換に使い、描画は別のスクリプトを用意することを想定 13 | /// 14 | public class OdomSubscriber : MonoBehaviour 15 | { 16 | 17 | [SerializeField] string rosTopicName = "odom"; 18 | [SerializeField] bool isDebugMode = true; 19 | 20 | private Vector3 robotPosition = new Vector3(); 21 | private Quaternion robotPosture = new Quaternion(); 22 | 23 | /// 24 | /// 初期化用のイベント関数 25 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 26 | /// 27 | void Start() 28 | { 29 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, OdomUpdate); 30 | } 31 | 32 | /// 33 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 34 | /// 35 | void OdomUpdate(OdometryMsg odomMessage) 36 | { 37 | if (isDebugMode) 38 | { 39 | Debug.Log(odomMessage); 40 | } 41 | 42 | PointMsg rosOdomPositionMsg = odomMessage.pose.pose.position; 43 | QuaternionMsg rosOdomPostureMsg = odomMessage.pose.pose.orientation; 44 | 45 | // OdomのTwist情報も使う場合は以下を使用 46 | // Vector3Msg rosOdomTwistLinearMsg = odomMessage.twist.linear; 47 | // Vector3Msg rosOdomTwistAngularMsg = odomMessage.twist.angular; 48 | 49 | // 座標変換 50 | robotPosition = rosOdomPositionMsg.From(); 51 | robotPosture = rosOdomPostureMsg.From(); 52 | } 53 | 54 | /// 55 | /// 外部からオドメトリ(ROS上のオドメトリ情報をUnity座標に変換したもの)の位置情報にアクセスするための関数 56 | /// 57 | public Vector3 GetRobotPosition() 58 | { 59 | return robotPosition; 60 | 61 | } 62 | 63 | /// 64 | /// 外部からオドメトリ(ROS上のオドメトリ情報をUnity座標に変換したもの)の姿勢情報にアクセスするための関数 65 | /// 66 | public Quaternion GetRobotPosture() 67 | { 68 | return robotPosture; 69 | } 70 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/OdomSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fb804f34d8251f6789633dacd64023f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/Scripts/TfSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 200b7a8ec8bff2c3ca78a911fd664c80 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9606440d0425d7146bf14af3d0e62f71 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 222717d59f782fd45b9bd17df96ddf21 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/Materials/Default.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fdfdfc19705bae4fb30b95c6517726c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78f4968f5e064c34cadce9a0c338193a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | bin/ 3 | lib/ 4 | msg_gen/ 5 | srv_gen/ 6 | msg/*Action.msg 7 | msg/*ActionFeedback.msg 8 | msg/*ActionGoal.msg 9 | msg/*ActionResult.msg 10 | msg/*Feedback.msg 11 | msg/*Goal.msg 12 | msg/*Result.msg 13 | msg/_*.py 14 | 15 | # Generated by dynamic reconfigure 16 | *.cfgc 17 | /cfg/cpp/ 18 | /cfg/*.py 19 | 20 | # Ignore generated docs 21 | *.dox 22 | *.wikidoc 23 | 24 | # eclipse stuff 25 | .project 26 | .cproject 27 | 28 | # qcreator stuff 29 | CMakeLists.txt.user 30 | 31 | srv/_*.py 32 | *.pcd 33 | *.pyc 34 | qtcreator-* 35 | *.user 36 | 37 | /planning/cfg 38 | /planning/docs 39 | /planning/src 40 | 41 | *~ 42 | 43 | # Emacs 44 | .#* 45 | 46 | # Catkin custom files 47 | CATKIN_IGNORE 48 | 49 | # SketchUp backup files 50 | *~.skp 51 | 52 | # Swap files 53 | *.swp 54 | 55 | # MacOS metadata files 56 | .DS_store 57 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(raspimouse_description) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | urdf 6 | ) 7 | 8 | catkin_package() 9 | 10 | include_directories( 11 | ${catkin_INCLUDE_DIRS} 12 | ) 13 | 14 | foreach(dir launch meshes urdf) 15 | install(DIRECTORY ${dir}/ 16 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir} 17 | ) 18 | endforeach(dir) 19 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/CMakeLists.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 255ebbfa2f396ba4981ab927b0df9da9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2020 RT Corporation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28b915c9b11b36c4fba8f069bbea8c58 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/README.md: -------------------------------------------------------------------------------- 1 | # raspimouse_description 2 | 3 | ROS package with URDF description macro for [Raspberry Pi Mouse](https://rt-net.jp/products/raspberrypimousev3/) 4 | 5 | ![display_launch](https://rt-net.github.io/images/raspberry-pi-mouse/display_launch.png) 6 | 7 | This ROS package was separated from [rt-net/raspimouse_sim](https://github.com/rt-net/raspimouse_sim). 8 | See details from [rt-net/raspimouse_sim#42](https://github.com/rt-net/raspimouse_sim/pull/42). 9 | 10 | ## Requirements 11 | 12 | - ROS 13 | - [Kinetic Kame](http://wiki.ros.org/kinetic/Installation/Ubuntu) 14 | - [Melodic Morenia](http://wiki.ros.org/melodic/Installation/Ubuntu) 15 | 16 | ## Installation 17 | 18 | ```sh 19 | # Clone raspimouse_description and install dependencies 20 | cd ~/catkin_ws/src 21 | git clone https://github.com/rt-net/raspimouse_description 22 | rosdep install -r -y -i --from-paths . 23 | 24 | # Build the package 25 | cd ~/catkin_ws 26 | catkin_make 27 | source devel/setup.bash 28 | ``` 29 | 30 | ## How to Use 31 | 32 | Display a Raspberry Pi Mouse robot model on RViz with the following comand: 33 | 34 | ```sh 35 | roslaunch raspimouse_description display_xacro.launch 36 | ``` 37 | 38 | ## LICENSE 39 | 40 | (C) 2016-2020 RT Corporation \ 41 | 42 | This repository is licensed under the MIT license, see [LICENSE](./LICENSE). 43 | Unless attributed otherwise, everything in this repository is under the MIT license. 44 | 45 | ### Acknowledgements 46 | 47 | Special thanks to https://gbiggs.github.io/rosjp_urdf_tutorial_text/index.html 48 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b52dec7642986fa4197701a63ca55864 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ea164547866a024ca58b7c2ecfc2a8c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/config.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 661e434eea3962649ba35db7ce30122f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/config/urdf.rviz.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c464e1f08f9618746910a6c8ae2db62f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/display_urdf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ["joint_states_source"] 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/display_urdf.launch.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 698bfdb6ac0582c46bcd4d0951ae89e3 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/display_xacro.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ["joint_states_source"] 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/launch/display_xacro.launch.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 457bb573959c0304ab1d3e71e2d365c7 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 408929f2908e1a04f8cfec673c032c19 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: daaeebb6e89d1ee49a6451ff6f4b6779 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae/body.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5c0e683b5e119a428c6df4852f8c299 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae/body/rt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae/body/rt-logo.png -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae/sensor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93a4c3dda0ee75f40a256005805d4b93 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/dae/wheel.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6ba3b5e7159f814787639a5336cc13e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e60e84299ddbf784d87b4f5f82928e6e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_TopPlate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_TopPlate.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_TopPlate.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0aac3c007bec284db7d4cb8455e949a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_base-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_base-metric.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_base-metric.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a894dd38a35b20848a51ae04ee6b15f2 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_sensor-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_sensor-metric.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_sensor-metric.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5792c0142f731c4ea9c4367c94c02a5 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-metric.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-metric.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7079f00c48f08a4aa477d007a7a1cc2 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-mm.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/RasPiMouse_wheel-mm.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc024085e7519d44d96c7d78e9ce96ec 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/URG-04LX-UG01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/URG-04LX-UG01.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/URG-04LX-UG01.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da38e8aa81f886947884c944947af57a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d0a462b8142bb2478b4838362db4036 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_black.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_black.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 814585c9aa444334d8f48e24335d7f7f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_gray.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_gray.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c645fbe9fa209614eb3c1cb67746b9ff 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_green.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_green.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_green.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9714690c04fae174fa40ef3f7379bd00 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_red.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_red.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_body_red.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1107e1820c91ecd44a9d96206afe323f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_black.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_black.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9180a859955603c4bb3becb92e979280 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_gray.stl -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_gray.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02906877c19de464fb4977fc15ff56ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | RaspberryPiMouse 4 | 1.0 5 | urdf/raspimouse.urdf.xacro 6 | 7 | rt-net 8 | shop@rt-net.jp 9 | 10 | 11 | RaspberryPiMouse 12 | 13 | 14 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/model.config.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8779cbd1a6c79004997c8c19d455462e 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | Any: 16 | second: 17 | enabled: 0 18 | settings: {} 19 | - first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | - first: 26 | Windows Store Apps: WindowsStoreApps 27 | second: 28 | enabled: 1 29 | settings: {} 30 | userData: 31 | assetBundleName: 32 | assetBundleVariant: 33 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | raspimouse_description 4 | 0.1.0 5 | The raspimouse_description package 6 | 7 | RT Corporation 8 | Daisuke Sato 9 | 10 | MIT 11 | 12 | https://github.com/rt-net/raspimouse_sim/wiki 13 | https://github.com/rt-net/raspimouse_description 14 | https://github.com/rt-net/raspimouse_description/issues 15 | 16 | catkin 17 | 18 | joint_state_publisher_gui 19 | joint_state_publisher 20 | robot_state_publisher 21 | rviz 22 | urdf 23 | xacro 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/package.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6217613351845e347b281be36519de06 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb8e2ae41bf9e0046bc9c858850e12a6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 461502277428497459d60cb2b18c9a92 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/body.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0.1 6 | 0.1 7 | 8 | 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/body.gazebo.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afdda5b84a8936e4fbf828b3bad221bf 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/body.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/body.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34d28b72252ec6b4dad3b8e8f5988302 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/option.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/body/option.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d59028211c759a746b2c76c53f54cebe 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/camera.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae95798bac9f7954ebc1aad52635d255 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/camera/camera.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Gazebo/FlatBlack 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | $(arg camera_visual) 21 | 30.0 22 | 23 | 0 0 0 0 0 0 24 | 1.39626 25 | 26 | 800 27 | 600 28 | R8G8B8 29 | 30 | 31 | 0.03 32 | 3 33 | 34 | 35 | gaussian 36 | 0.0 37 | 0.007 38 | 39 | 40 | 41 | 42 | ${robot_namespace} 43 | true 44 | 0.0 45 | ${camera_name} 46 | image_raw 47 | camera_info 48 | ${robotdescription_namespace}${camera_link}_tf_origin 49 | 0.0 50 | 0.0 51 | 0.0 52 | 0.0 53 | 0.0 54 | 0.0 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/camera/camera.gazebo.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53305c7ca2199bf46b19008b48081260 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/camera/camera.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/camera/camera.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65461ed2c0051b546ab41ad674767c61 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/common.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/common.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 369cf8826d43a674ea1026efcf5694b6 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/raspimouse.urdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/raspimouse.urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 410251022c75ea74cb2244ebf57a185a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/raspimouse.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac58c12288f66834f9d9058374b6e53c 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/raspimouse_with_urg.urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ac3d5f22063d2645975876798fbb24d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6882ce7d082cf37498530d92dea05ea4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lidar.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 0 0 0 0 0 8 | $(arg laser_visual) 9 | 10 10 | 11 | 12 | 13 | 720 14 | 1 15 | ${base_rad-rad_range/2} 16 | ${base_rad+rad_range/2} 17 | 18 | 19 | 20 | ${min_range} 21 | ${max_range} 22 | 0.01 23 | 24 | 25 | gaussian 26 | 0.0 27 | 0.03 28 | 29 | 30 | 31 | scan 32 | ${sensor_link_name} 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lidar.gazebo.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea53bcf2837899948990d42f7b31e3bd 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lidar.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lidar.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9de7249f053c6b8408bf232ef2aeaf9f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lightsens.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Gazebo/Gray 7 | 8 | 0 0 0 0 0 0 9 | false 10 | 20 11 | 12 | 13 | 14 | 1 15 | 1 16 | ${base_rad-rad_range/2} 17 | ${base_rad+rad_range/2} 18 | 19 | 20 | 21 | ${min_range} 22 | ${max_range} 23 | 0.001 24 | 25 | 26 | gaussian 27 | 0.0 28 | 0.01 29 | 30 | 31 | 32 | ${robot_namespace} 33 | ${prefix}_scan 34 | ${robotdescription_namespace}${prefix} 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lightsens.gazebo.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b6ef2dec27f19a44a4b7dbc0600dd36 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lightsens.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/sensors/lightsens.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a56bd39691718b4794ec04a37b4410f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/wheel.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4ff30e96d85a7048851e3c7292aeea5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/wheel/diffdrive.gazebo.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 079e8e1614574444e9a831684782d0af 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/wheel/wheel.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 2 34 | 2 35 | 0 36 | 0 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_description/urdf/wheel/wheel.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e0d2031b35beb84ea6273e3d3f06a86 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/Assets/URDF/raspimouse_with_urg.urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41c474f5d3fb0864db82a73471ca3472 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 31 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.com 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_UserSelectedRegistryName: 29 | m_UserAddingNewScopedRegistry: 0 30 | m_RegistryInfoDraft: 31 | m_Modified: 0 32 | m_ErrorMessage: 33 | m_UserModificationsInstanceId: -830 34 | m_OriginalInstanceId: -832 35 | m_LoadAssets: 0 36 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "m_Name": "Settings", 3 | "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", 4 | "m_Dictionary": { 5 | "m_DictionaryValues": [] 6 | } 7 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.3.4f1 2 | m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7) 3 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - robot 8 | layers: 9 | - Default 10 | - TransparentFX 11 | - Ignore Raycast 12 | - 13 | - Water 14 | - UI 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | m_SortingLayers: 42 | - name: Default 43 | uniqueID: 0 44 | locked: 0 45 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /MobileRobotUITutorialProject/ProjectSettings/boot.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/MobileRobotUITutorialProject/ProjectSettings/boot.config -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | bin/ 3 | lib/ 4 | msg_gen/ 5 | srv_gen/ 6 | msg/*Action.msg 7 | msg/*ActionFeedback.msg 8 | msg/*ActionGoal.msg 9 | msg/*ActionResult.msg 10 | msg/*Feedback.msg 11 | msg/*Goal.msg 12 | msg/*Result.msg 13 | msg/_*.py 14 | 15 | # Generated by dynamic reconfigure 16 | *.cfgc 17 | /cfg/cpp/ 18 | /cfg/*.py 19 | 20 | # Ignore generated docs 21 | *.dox 22 | *.wikidoc 23 | 24 | # eclipse stuff 25 | .project 26 | .cproject 27 | 28 | # qcreator stuff 29 | CMakeLists.txt.user 30 | 31 | srv/_*.py 32 | *.pcd 33 | *.pyc 34 | qtcreator-* 35 | *.user 36 | 37 | /planning/cfg 38 | /planning/docs 39 | /planning/src 40 | 41 | *~ 42 | 43 | # Emacs 44 | .#* 45 | 46 | # Catkin custom files 47 | CATKIN_IGNORE 48 | 49 | # SketchUp backup files 50 | *~.skp 51 | 52 | # Swap files 53 | *.swp 54 | 55 | # MacOS metadata files 56 | .DS_store 57 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(raspimouse_description) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | urdf 6 | ) 7 | 8 | catkin_package() 9 | 10 | include_directories( 11 | ${catkin_INCLUDE_DIRS} 12 | ) 13 | 14 | foreach(dir launch meshes urdf) 15 | install(DIRECTORY ${dir}/ 16 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir} 17 | ) 18 | endforeach(dir) 19 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2020 RT Corporation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/README.md: -------------------------------------------------------------------------------- 1 | # raspimouse_description 2 | 3 | ROS package with URDF description macro for [Raspberry Pi Mouse](https://rt-net.jp/products/raspberrypimousev3/) 4 | 5 | ![display_launch](https://rt-net.github.io/images/raspberry-pi-mouse/display_launch.png) 6 | 7 | This ROS package was separated from [rt-net/raspimouse_sim](https://github.com/rt-net/raspimouse_sim). 8 | See details from [rt-net/raspimouse_sim#42](https://github.com/rt-net/raspimouse_sim/pull/42). 9 | 10 | ## Requirements 11 | 12 | - ROS 13 | - [Kinetic Kame](http://wiki.ros.org/kinetic/Installation/Ubuntu) 14 | - [Melodic Morenia](http://wiki.ros.org/melodic/Installation/Ubuntu) 15 | 16 | ## Installation 17 | 18 | ```sh 19 | # Clone raspimouse_description and install dependencies 20 | cd ~/catkin_ws/src 21 | git clone https://github.com/rt-net/raspimouse_description 22 | rosdep install -r -y -i --from-paths . 23 | 24 | # Build the package 25 | cd ~/catkin_ws 26 | catkin_make 27 | source devel/setup.bash 28 | ``` 29 | 30 | ## How to Use 31 | 32 | Display a Raspberry Pi Mouse robot model on RViz with the following comand: 33 | 34 | ```sh 35 | roslaunch raspimouse_description display_xacro.launch 36 | ``` 37 | 38 | ## LICENSE 39 | 40 | (C) 2016-2020 RT Corporation \ 41 | 42 | This repository is licensed under the MIT license, see [LICENSE](./LICENSE). 43 | Unless attributed otherwise, everything in this repository is under the MIT license. 44 | 45 | ### Acknowledgements 46 | 47 | Special thanks to https://gbiggs.github.io/rosjp_urdf_tutorial_text/index.html 48 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/launch/display_urdf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ["joint_states_source"] 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/launch/display_xacro.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ["joint_states_source"] 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/dae/body/rt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/dae/body/rt-logo.png -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/RasPiMouse_TopPlate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/RasPiMouse_TopPlate.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/RasPiMouse_base-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/RasPiMouse_base-metric.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/RasPiMouse_sensor-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/RasPiMouse_sensor-metric.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/RasPiMouse_wheel-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/RasPiMouse_wheel-metric.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/RasPiMouse_wheel-mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/RasPiMouse_wheel-mm.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/URG-04LX-UG01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/URG-04LX-UG01.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_black.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_gray.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_green.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_green.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_red.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_body_red.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_black.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/ROS/src/raspimouse_description/meshes/stl/color/RasPiMouse_wheel_gray.stl -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | RaspberryPiMouse 4 | 1.0 5 | urdf/raspimouse.urdf.xacro 6 | 7 | rt-net 8 | shop@rt-net.jp 9 | 10 | 11 | RaspberryPiMouse 12 | 13 | 14 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | raspimouse_description 4 | 0.1.0 5 | The raspimouse_description package 6 | 7 | RT Corporation 8 | Daisuke Sato 9 | 10 | MIT 11 | 12 | https://github.com/rt-net/raspimouse_sim/wiki 13 | https://github.com/rt-net/raspimouse_description 14 | https://github.com/rt-net/raspimouse_description/issues 15 | 16 | catkin 17 | 18 | joint_state_publisher_gui 19 | joint_state_publisher 20 | robot_state_publisher 21 | rviz 22 | urdf 23 | xacro 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/body/body.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0.1 6 | 0.1 7 | 8 | 9 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/body/body.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/body/option.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/camera/camera.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Gazebo/FlatBlack 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | $(arg camera_visual) 21 | 30.0 22 | 23 | 0 0 0 0 0 0 24 | 1.39626 25 | 26 | 800 27 | 600 28 | R8G8B8 29 | 30 | 31 | 0.03 32 | 3 33 | 34 | 35 | gaussian 36 | 0.0 37 | 0.007 38 | 39 | 40 | 41 | 42 | ${robot_namespace} 43 | true 44 | 0.0 45 | ${camera_name} 46 | image_raw 47 | camera_info 48 | ${robotdescription_namespace}${camera_link}_tf_origin 49 | 0.0 50 | 0.0 51 | 0.0 52 | 0.0 53 | 0.0 54 | 0.0 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/camera/camera.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/common.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/raspimouse.urdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/sensors/lidar.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 0 0 0 0 0 8 | $(arg laser_visual) 9 | 10 10 | 11 | 12 | 13 | 720 14 | 1 15 | ${base_rad-rad_range/2} 16 | ${base_rad+rad_range/2} 17 | 18 | 19 | 20 | ${min_range} 21 | ${max_range} 22 | 0.01 23 | 24 | 25 | gaussian 26 | 0.0 27 | 0.03 28 | 29 | 30 | 31 | scan 32 | ${sensor_link_name} 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/sensors/lidar.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/sensors/lightsens.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Gazebo/Gray 7 | 8 | 0 0 0 0 0 0 9 | false 10 | 20 11 | 12 | 13 | 14 | 1 15 | 1 16 | ${base_rad-rad_range/2} 17 | ${base_rad+rad_range/2} 18 | 19 | 20 | 21 | ${min_range} 22 | ${max_range} 23 | 0.001 24 | 25 | 26 | gaussian 27 | 0.0 28 | 0.01 29 | 30 | 31 | 32 | ${robot_namespace} 33 | ${prefix}_scan 34 | ${robotdescription_namespace}${prefix} 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/sensors/lightsens.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /ROS/src/raspimouse_description/urdf/wheel/wheel.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 2 34 | 2 35 | 0 36 | 0 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ecc449d3c05199d3d9a36925914ddc83 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Materials/ArrowMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d47c437c1d5e9499681fe7ed3747c1bc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Materials/ArrowMaterial2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f6bb532c1d924888adeefb2733bc4fb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Materials/Arrows.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/UnityScripts/OdometryViewer/Materials/Arrows.fbx -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 742c48e0c8cbceaab9a23f8714d260b7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Prefabs/Arrows-bule.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: abdb200c6bbce4de78e32958500935de 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Prefabs/Arrows-red.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad09d02a767c94008a93473968a137c1 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87f6df19bfd592011b02a949280624a5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Scripts/AMCLPoseViewer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using Unity.Robotics.ROSTCPConnector; 5 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 6 | using RosMessageTypes.Geometry; 7 | using RosMessageTypes.Std; 8 | using RosMessageTypes.BuiltinInterfaces; 9 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 10 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 11 | 12 | public class AMCLPoseViewer : MonoBehaviour 13 | { 14 | [SerializeField] int lengthOfHistory = 10; 15 | [SerializeField] float AMCLPoseDistanceThreshold = 0.03f; 16 | [SerializeField] GameObject subscriberGameObject; 17 | 18 | [SerializeField] GameObject arrowPrefab; 19 | 20 | private List arrowList; 21 | 22 | private Vector3 previousRobotAMCLPosition = new Vector3(); 23 | 24 | void Start() 25 | { 26 | arrowList = new List(lengthOfHistory); 27 | } 28 | 29 | void Update() 30 | { 31 | Vector3 currentRobotAMCLPosition = subscriberGameObject.GetComponent().GetRobotAMCLPosition(); 32 | Quaternion currentRobotAMCLPosture = subscriberGameObject.GetComponent().GetRobotAMCLPosture(); 33 | 34 | if (Vector3.Distance(currentRobotAMCLPosition, previousRobotAMCLPosition) > AMCLPoseDistanceThreshold) 35 | { 36 | GameObject arrow = Instantiate(arrowPrefab); 37 | arrow.transform.parent = gameObject.transform; 38 | arrow.transform.position = currentRobotAMCLPosition; 39 | arrow.transform.rotation = currentRobotAMCLPosture; 40 | arrow.transform.Rotate(0, 180, 0); // ロボットの向きに合わせて矢印を回転 41 | if (arrowList.Count >= lengthOfHistory) { 42 | Destroy(arrowList[0]); 43 | arrowList.RemoveRange(0, 1); 44 | } 45 | arrowList.Add(arrow); 46 | previousRobotAMCLPosition = currentRobotAMCLPosition; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Scripts/AMCLPoseViewer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70015319e2b13f14e894b1fca34d3e23 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/OdometryViewer/Scripts/OdometryViewer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab0860b423006027b990607bba52dc93 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d42bb1f0777419544b1d623f804a6109 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Materials/Sphere.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e39ed91c775f85c4dba745e0c45ca921 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60dddee5ab5f7e34e9a03a15726c2baf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Prefabs/Sphere.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a7d64f0df28e324684ffb16cae07465 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ccd62507e208984a84406ad23590d42 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Scenes/PointCloudSample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20e52f821fe5cae35b15481db148ee90 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8cc732510791c34bb5aa767aa2e8b5d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityScripts/PointCloud/Scripts/PointCloudLocator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb1c556465693b44a9f4d57e1adcdb72 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/AMCLSubscriber.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.EventSystems; 6 | using Unity.Robotics.ROSTCPConnector; 7 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 8 | using RosMessageTypes.Geometry; 9 | using RosMessageTypes.Std; 10 | using RosMessageTypes.BuiltinInterfaces; 11 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 12 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 13 | 14 | public class AMCLSubscriber : MonoBehaviour 15 | { 16 | [SerializeField] string rosTopicName = "amcl_pose"; 17 | 18 | private Vector3 robotAMCLPosition = new Vector3(); 19 | private Quaternion robotAMCLPosture = new Quaternion(); 20 | 21 | void Start() 22 | { 23 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, AMCLPoseUpdate); 24 | } 25 | 26 | void AMCLPoseUpdate(PoseWithCovarianceStampedMsg AMCLPoseMessage) 27 | { 28 | PointMsg rosOdomPositionMsg = AMCLPoseMessage.pose.pose.position; 29 | QuaternionMsg rosOdomPostureMsg = AMCLPoseMessage.pose.pose.orientation; 30 | 31 | // 座標変換 32 | robotAMCLPosition = rosOdomPositionMsg.From(); 33 | robotAMCLPosture = rosOdomPostureMsg.From(); 34 | } 35 | 36 | public Vector3 GetRobotAMCLPosition() 37 | { 38 | return robotAMCLPosition; 39 | } 40 | 41 | public Quaternion GetRobotAMCLPosture() 42 | { 43 | return robotAMCLPosture; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/AMCLSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38301a37217da7642876833360f17837 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/CmdVelPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ce3c96156e9cae259dfd03a04c8616c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/CmdVelSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 各種ROSトピック形式 4 | using TwistMsg = RosMessageTypes.Geometry.TwistMsg; 5 | 6 | /// 7 | /// CmdVel(TwistMsg)を受信するためのクラス 8 | /// 主にデバッグ用に使うことを想定 9 | /// 10 | public class CmdVelSubscriber : MonoBehaviour 11 | { 12 | // 受信するROSのトピック名 13 | [SerializeField] string rosTopicName = "cmd_vel"; 14 | // デバッグモードとするかどうか(デバッグモードではコンソールにログを出力) 15 | [SerializeField] bool isDebugMode = true; 16 | 17 | /// 18 | /// 初期化用のイベント関数 19 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 20 | /// 21 | void Start() 22 | { 23 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, CmdVelUpdate); 24 | } 25 | 26 | /// 27 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 28 | /// 29 | void CmdVelUpdate(TwistMsg twistMessage) 30 | { 31 | if (isDebugMode) 32 | { 33 | Debug.Log(twistMessage); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /UnityScripts/Scripts/CmdVelSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3745db3e9359cd2fdad7685ade18554c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/ImageSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e9069025f49c0582a6d94301f283d14 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/JoystickCmdVelPublisher.cs: -------------------------------------------------------------------------------- 1 | /* CmdVelPublisher.csを参考 */ 2 | 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using UnityEngine; 6 | using Unity.Robotics.ROSTCPConnector; 7 | using TwistMsg = RosMessageTypes.Geometry.TwistMsg; 8 | 9 | public class JoystickCmdVelPublisher : MonoBehaviour 10 | { 11 | [SerializeField] string topicName = "cmd_vel"; 12 | private ROSConnection ros; 13 | private TwistMsg cmdVelMessage = new TwistMsg(); 14 | public VariableJoystick variableJoystick; 15 | private float timeSum = 0.0f; 16 | private const float timeBase = 0.1f; 17 | 18 | void Start() 19 | { 20 | ros = ROSConnection.GetOrCreateInstance(); 21 | ros.RegisterPublisher(topicName); 22 | cmdVelMessage.linear.x = 0.0f; 23 | cmdVelMessage.angular.z = 0.0f; 24 | Publish(); 25 | } 26 | 27 | void Update() 28 | { 29 | timeSum += Time.deltaTime; 30 | if(timeSum >= timeBase) { 31 | timeSum = 0.0f; 32 | cmdVelMessage.linear.x = variableJoystick.Vertical * 0.2f; 33 | cmdVelMessage.angular.z = variableJoystick.Horizontal * -1.0f; 34 | Publish(); 35 | } 36 | } 37 | 38 | public void Publish() 39 | { 40 | ros.Publish(topicName, cmdVelMessage); 41 | } 42 | } -------------------------------------------------------------------------------- /UnityScripts/Scripts/JoystickCmdVelPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b2563afcded61043a892960386d95e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/LaserScanSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 座標変換用 4 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 5 | // 各種ROSトピック形式 6 | using LaserScanMsg = RosMessageTypes.Sensor.LaserScanMsg; 7 | 8 | /// 9 | /// LiDARスキャンデータ(LaserScanMsg)を受信するためのクラス 10 | /// 主にスキャンデータの取得および座標変換に使い、描画は別のスクリプトを用意することを想定 11 | /// 12 | public class LaserScanSubscriber : MonoBehaviour 13 | { 14 | 15 | // 受信するROSのトピック名 16 | [SerializeField] string rosTopicName = "scan"; 17 | // デバッグモードとするかどうか(デバッグモードではコンソールにログを出力) 18 | [SerializeField] bool isDebugMode = true; 19 | 20 | private float[] scanRangesArray; 21 | private float scanAngleMin = 0; 22 | private float scanAngleMax = 0; 23 | 24 | /// 25 | /// 初期化用のイベント関数 26 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 27 | /// 28 | void Start() 29 | { 30 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, ScanUpdate); 31 | } 32 | 33 | 34 | /// 35 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 36 | /// 37 | void ScanUpdate(LaserScanMsg scanMessage) 38 | { 39 | if (isDebugMode) 40 | { 41 | Debug.Log(scanMessage); 42 | } 43 | 44 | scanRangesArray = scanMessage.ranges; 45 | scanAngleMax = scanMessage.angle_max; 46 | scanAngleMin = scanMessage.angle_min; 47 | } 48 | 49 | /// 50 | /// 外部からスキャン結果の配列にアクセスするための関数 51 | /// 52 | public float[] GetScanRanges() 53 | { 54 | return scanRangesArray; 55 | 56 | } 57 | 58 | /// 59 | /// 外部からスキャン結果にアクセスするための関数 60 | /// 61 | public float GetScanAngleMin() 62 | { 63 | return scanAngleMin; 64 | } 65 | 66 | /// 67 | /// 外部からスキャン結果にアクセスするための関数 68 | /// 69 | public float GetScanAngleMax() 70 | { 71 | return scanAngleMax; 72 | } 73 | } -------------------------------------------------------------------------------- /UnityScripts/Scripts/LaserScanSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8957dd394486cc24a646e1e9267143f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/NavPosePublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e99bcfd2b3887c049a50867a588cd773 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/OdomSubscriber.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | // 座標変換用 4 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 5 | // 各種ROSトピック形式 6 | using OdometryMsg = RosMessageTypes.Nav.OdometryMsg; 7 | using PointMsg = RosMessageTypes.Geometry.PointMsg; 8 | using QuaternionMsg = RosMessageTypes.Geometry.QuaternionMsg; 9 | 10 | /// 11 | /// オドメトリデータ(OdometryMsg)を受信するためのクラス 12 | /// 主にオドメトリデータの取得および座標変換に使い、描画は別のスクリプトを用意することを想定 13 | /// 14 | public class OdomSubscriber : MonoBehaviour 15 | { 16 | 17 | [SerializeField] string rosTopicName = "odom"; 18 | [SerializeField] bool isDebugMode = true; 19 | 20 | private Vector3 robotPosition = new Vector3(); 21 | private Quaternion robotPosture = new Quaternion(); 22 | 23 | /// 24 | /// 初期化用のイベント関数 25 | /// https://docs.unity3d.com/ja/2020.3/Manual/ExecutionOrder.html 26 | /// 27 | void Start() 28 | { 29 | ROSConnection.GetOrCreateInstance().Subscribe(rosTopicName, OdomUpdate); 30 | } 31 | 32 | /// 33 | /// ROSトピックを受け取った際に呼ばれるコールバック関数 34 | /// 35 | void OdomUpdate(OdometryMsg odomMessage) 36 | { 37 | if (isDebugMode) 38 | { 39 | Debug.Log(odomMessage); 40 | } 41 | 42 | PointMsg rosOdomPositionMsg = odomMessage.pose.pose.position; 43 | QuaternionMsg rosOdomPostureMsg = odomMessage.pose.pose.orientation; 44 | 45 | // OdomのTwist情報も使う場合は以下を使用 46 | // Vector3Msg rosOdomTwistLinearMsg = odomMessage.twist.linear; 47 | // Vector3Msg rosOdomTwistAngularMsg = odomMessage.twist.angular; 48 | 49 | // 座標変換 50 | robotPosition = rosOdomPositionMsg.From(); 51 | robotPosture = rosOdomPostureMsg.From(); 52 | } 53 | 54 | /// 55 | /// 外部からオドメトリ(ROS上のオドメトリ情報をUnity座標に変換したもの)の位置情報にアクセスするための関数 56 | /// 57 | public Vector3 GetRobotPosition() 58 | { 59 | return robotPosition; 60 | 61 | } 62 | 63 | /// 64 | /// 外部からオドメトリ(ROS上のオドメトリ情報をUnity座標に変換したもの)の姿勢情報にアクセスするための関数 65 | /// 66 | public Quaternion GetRobotPosture() 67 | { 68 | return robotPosture; 69 | } 70 | } -------------------------------------------------------------------------------- /UnityScripts/Scripts/OdomSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fb804f34d8251f6789633dacd64023f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityScripts/Scripts/TfSubscriber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 200b7a8ec8bff2c3ca78a911fd664c80 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /docs/images/appendix-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-1.png -------------------------------------------------------------------------------- /docs/images/appendix-10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-10.gif -------------------------------------------------------------------------------- /docs/images/appendix-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-2.png -------------------------------------------------------------------------------- /docs/images/appendix-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-3.png -------------------------------------------------------------------------------- /docs/images/appendix-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-4.png -------------------------------------------------------------------------------- /docs/images/appendix-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-5.png -------------------------------------------------------------------------------- /docs/images/appendix-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-6.png -------------------------------------------------------------------------------- /docs/images/appendix-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-7.png -------------------------------------------------------------------------------- /docs/images/appendix-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-8.png -------------------------------------------------------------------------------- /docs/images/appendix-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/appendix-9.png -------------------------------------------------------------------------------- /docs/images/intro0-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro0-1.jpg -------------------------------------------------------------------------------- /docs/images/intro1-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro1-1-1.png -------------------------------------------------------------------------------- /docs/images/intro1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro1-1.png -------------------------------------------------------------------------------- /docs/images/intro1-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro1-2.jpg -------------------------------------------------------------------------------- /docs/images/intro1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro1-3.png -------------------------------------------------------------------------------- /docs/images/intro1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro1-4.png -------------------------------------------------------------------------------- /docs/images/intro2-1-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro2-1-1.gif -------------------------------------------------------------------------------- /docs/images/intro2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro2-1.png -------------------------------------------------------------------------------- /docs/images/intro2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro2-2.png -------------------------------------------------------------------------------- /docs/images/intro3-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-0.png -------------------------------------------------------------------------------- /docs/images/intro3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-1.png -------------------------------------------------------------------------------- /docs/images/intro3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-2.png -------------------------------------------------------------------------------- /docs/images/intro3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-3.png -------------------------------------------------------------------------------- /docs/images/intro3-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-4.png -------------------------------------------------------------------------------- /docs/images/intro3-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-5.png -------------------------------------------------------------------------------- /docs/images/intro3-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-6.png -------------------------------------------------------------------------------- /docs/images/intro3-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/intro3-7.png -------------------------------------------------------------------------------- /docs/images/raspimouse_urg_axis_ros.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/raspimouse_urg_axis_ros.png -------------------------------------------------------------------------------- /docs/images/raspimouse_urg_axis_unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/raspimouse_urg_axis_unity.png -------------------------------------------------------------------------------- /docs/images/step0-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-1.png -------------------------------------------------------------------------------- /docs/images/step0-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-2.png -------------------------------------------------------------------------------- /docs/images/step0-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-3.png -------------------------------------------------------------------------------- /docs/images/step0-4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-4.gif -------------------------------------------------------------------------------- /docs/images/step0-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-5.png -------------------------------------------------------------------------------- /docs/images/step0-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step0-6.png -------------------------------------------------------------------------------- /docs/images/step1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-1.png -------------------------------------------------------------------------------- /docs/images/step1-10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-10.gif -------------------------------------------------------------------------------- /docs/images/step1-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-11.png -------------------------------------------------------------------------------- /docs/images/step1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-2.png -------------------------------------------------------------------------------- /docs/images/step1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-3.png -------------------------------------------------------------------------------- /docs/images/step1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-4.png -------------------------------------------------------------------------------- /docs/images/step1-5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-5.gif -------------------------------------------------------------------------------- /docs/images/step1-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-6.png -------------------------------------------------------------------------------- /docs/images/step1-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-7.png -------------------------------------------------------------------------------- /docs/images/step1-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-8.png -------------------------------------------------------------------------------- /docs/images/step1-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step1-9.png -------------------------------------------------------------------------------- /docs/images/step10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step10-1.png -------------------------------------------------------------------------------- /docs/images/step10-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step10-2.png -------------------------------------------------------------------------------- /docs/images/step10-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step10-3.png -------------------------------------------------------------------------------- /docs/images/step10-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step10-4.png -------------------------------------------------------------------------------- /docs/images/step2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-1.png -------------------------------------------------------------------------------- /docs/images/step2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-2.png -------------------------------------------------------------------------------- /docs/images/step2-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-3.gif -------------------------------------------------------------------------------- /docs/images/step2-4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-4.gif -------------------------------------------------------------------------------- /docs/images/step2-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-5-1.png -------------------------------------------------------------------------------- /docs/images/step2-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-5.png -------------------------------------------------------------------------------- /docs/images/step2-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-6-1.png -------------------------------------------------------------------------------- /docs/images/step2-6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-6-2.png -------------------------------------------------------------------------------- /docs/images/step2-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-6.png -------------------------------------------------------------------------------- /docs/images/step2-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step2-7.png -------------------------------------------------------------------------------- /docs/images/step3-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-1-1.png -------------------------------------------------------------------------------- /docs/images/step3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-1.png -------------------------------------------------------------------------------- /docs/images/step3-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-10.png -------------------------------------------------------------------------------- /docs/images/step3-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-11.png -------------------------------------------------------------------------------- /docs/images/step3-12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-12.gif -------------------------------------------------------------------------------- /docs/images/step3-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-13.png -------------------------------------------------------------------------------- /docs/images/step3-14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-14.gif -------------------------------------------------------------------------------- /docs/images/step3-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-15.png -------------------------------------------------------------------------------- /docs/images/step3-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-16.gif -------------------------------------------------------------------------------- /docs/images/step3-17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-17.gif -------------------------------------------------------------------------------- /docs/images/step3-18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-18.gif -------------------------------------------------------------------------------- /docs/images/step3-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-19.png -------------------------------------------------------------------------------- /docs/images/step3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-2.png -------------------------------------------------------------------------------- /docs/images/step3-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-20.png -------------------------------------------------------------------------------- /docs/images/step3-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-21.png -------------------------------------------------------------------------------- /docs/images/step3-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-22.png -------------------------------------------------------------------------------- /docs/images/step3-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-23.png -------------------------------------------------------------------------------- /docs/images/step3-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-25.png -------------------------------------------------------------------------------- /docs/images/step3-26-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-26-1.png -------------------------------------------------------------------------------- /docs/images/step3-26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-26.gif -------------------------------------------------------------------------------- /docs/images/step3-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-27.png -------------------------------------------------------------------------------- /docs/images/step3-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-29.png -------------------------------------------------------------------------------- /docs/images/step3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-3.png -------------------------------------------------------------------------------- /docs/images/step3-30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-30.gif -------------------------------------------------------------------------------- /docs/images/step3-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-31.png -------------------------------------------------------------------------------- /docs/images/step3-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-4.png -------------------------------------------------------------------------------- /docs/images/step3-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-5.png -------------------------------------------------------------------------------- /docs/images/step3-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-6-1.png -------------------------------------------------------------------------------- /docs/images/step3-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-6.png -------------------------------------------------------------------------------- /docs/images/step3-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-7.png -------------------------------------------------------------------------------- /docs/images/step3-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-8.png -------------------------------------------------------------------------------- /docs/images/step3-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step3-9.png -------------------------------------------------------------------------------- /docs/images/step4-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-100.png -------------------------------------------------------------------------------- /docs/images/step4-101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-101.png -------------------------------------------------------------------------------- /docs/images/step4-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-5.png -------------------------------------------------------------------------------- /docs/images/step4-6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-6.gif -------------------------------------------------------------------------------- /docs/images/step4-7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-7.gif -------------------------------------------------------------------------------- /docs/images/step4-8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-8.gif -------------------------------------------------------------------------------- /docs/images/step4-99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step4-99.png -------------------------------------------------------------------------------- /docs/images/step5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-1.png -------------------------------------------------------------------------------- /docs/images/step5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-2.png -------------------------------------------------------------------------------- /docs/images/step5-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-3.gif -------------------------------------------------------------------------------- /docs/images/step5-4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-4.gif -------------------------------------------------------------------------------- /docs/images/step5-5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-5.gif -------------------------------------------------------------------------------- /docs/images/step5-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-6.png -------------------------------------------------------------------------------- /docs/images/step5-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step5-7.png -------------------------------------------------------------------------------- /docs/images/step6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step6-1.png -------------------------------------------------------------------------------- /docs/images/step6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step6-2.png -------------------------------------------------------------------------------- /docs/images/step6-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step6-3.gif -------------------------------------------------------------------------------- /docs/images/step6-4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step6-4.gif -------------------------------------------------------------------------------- /docs/images/step6-5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step6-5.gif -------------------------------------------------------------------------------- /docs/images/step7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-1.png -------------------------------------------------------------------------------- /docs/images/step7-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-2.png -------------------------------------------------------------------------------- /docs/images/step7-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-3.png -------------------------------------------------------------------------------- /docs/images/step7-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-4.png -------------------------------------------------------------------------------- /docs/images/step7-5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-5.gif -------------------------------------------------------------------------------- /docs/images/step7-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-6.png -------------------------------------------------------------------------------- /docs/images/step7-7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step7-7.gif -------------------------------------------------------------------------------- /docs/images/step8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-1.png -------------------------------------------------------------------------------- /docs/images/step8-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-10.png -------------------------------------------------------------------------------- /docs/images/step8-11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-11.gif -------------------------------------------------------------------------------- /docs/images/step8-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-2.png -------------------------------------------------------------------------------- /docs/images/step8-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-3.png -------------------------------------------------------------------------------- /docs/images/step8-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-4.png -------------------------------------------------------------------------------- /docs/images/step8-5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-5-2.png -------------------------------------------------------------------------------- /docs/images/step8-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-5.png -------------------------------------------------------------------------------- /docs/images/step8-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-6.png -------------------------------------------------------------------------------- /docs/images/step8-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-7.png -------------------------------------------------------------------------------- /docs/images/step8-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-8.png -------------------------------------------------------------------------------- /docs/images/step8-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-9.png -------------------------------------------------------------------------------- /docs/images/step8-97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-97.png -------------------------------------------------------------------------------- /docs/images/step8-98.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-98.gif -------------------------------------------------------------------------------- /docs/images/step8-99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step8-99.png -------------------------------------------------------------------------------- /docs/images/step9-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-0.png -------------------------------------------------------------------------------- /docs/images/step9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-1.png -------------------------------------------------------------------------------- /docs/images/step9-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-2.png -------------------------------------------------------------------------------- /docs/images/step9-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-3.png -------------------------------------------------------------------------------- /docs/images/step9-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-4.png -------------------------------------------------------------------------------- /docs/images/step9-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-5.png -------------------------------------------------------------------------------- /docs/images/step9-6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-6.gif -------------------------------------------------------------------------------- /docs/images/step9-7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-7.gif -------------------------------------------------------------------------------- /docs/images/step9-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/Unity-ROS2-MobileRobot-Tutorial/479280dbdd4058e7e1a782af391ddc7e45b3bc81/docs/images/step9-8.png -------------------------------------------------------------------------------- /docs/intro0.md: -------------------------------------------------------------------------------- 1 | # 本教材で学べること 2 | 3 | ![](./images/intro0-1.jpg) 4 | 5 | 本教材はUnityとROS 2を組み合わせたロボット開発のための入門用教材です。 6 | 7 | Unityを用いてロボット操作用のUIを作成し、 8 | ROS 2で制御された実機の移動ロボットを動かします。 9 | 10 | 使用するロボットはROS 2対応の小型移動プラットフォームロボット「Raspberry Pi Mouse」です。 11 | 12 | 使用するPCのOSはWindowsを想定していますが、 13 | 環境に合わせて適宜読み替えていただければmacOSやUbuntuでも実行可能です。 14 | 15 | ## 扱う内容 16 | 17 | 本教材で扱う内容は以下の通りです。 18 | 19 | * ROS 2による移動ロボットの制御 20 | * ロボットモデルの表示 21 | * ロボット操作用ボタンの作成と速度指令値の送信 22 | * ロボット位置姿勢の可視化 23 | * オドメトリの可視化 24 | * LiDARデータの可視化 25 | * カメラ映像の可視化 26 | * JoyStickアセットによる操作 27 | * スキャンした3Dモデルの表示 28 | * SLAMによる地図生成とナビゲーション 29 | 30 | 使用するロボットのハードウェアやROS 2などのツールについて詳細な解説は省いています。 31 | 32 | 特にソフトウェアのインストール手順などは頻繁に変更が生じるため、適宜外部のドキュメントへのリンクを案内しています。 33 | 34 | ## 扱わない内容 35 | 本教材はUnityとROS 2との通信とUI開発に特化しており、Unityによる物理演算や距離計測などのシミュレーションは行っていません。 36 | 37 | Unityでシミュレータ環境を構築する際はぜひ 38 | [Unity Robotics Hub](https://github.com/Unity-Technologies/Unity-Robotics-Hub) 39 | をご覧ください。 40 | 41 | ## 想定している対象者 42 | 43 | 本教材の対象として以下の方を想定しています。 44 | 45 | * Unityの開発経験がありロボット制御に興味のある方 46 | * ROS 2の開発経験がありUnityを使ったUI開発に興味のある方 47 | * Unity、ROS 2の開発経験がなくロボットのUI開発に興味のある方 48 | 49 | UnityとROS 2が連携したシステムを開発するためには両方の知識が必要になりますが、 50 | 連携部分をサンプルプログラムとして用意したので入門者でも扱いやすい内容となっています。 51 | サンプルに含まれていないデータのやり取りをしたい場合も、多くの場合はサンプルを少し書き換えることで対応可能です。 52 | 本教材で学んだ後は、ぜひオリジナルのUI作成に挑戦してみて下さい。 53 | 54 | ## ROS 2のビジュアライズツールとの違い 55 | 56 | ROS 2対応しているロボットのUI開発において 57 | RVizなどが広く用いられていますが、 58 | 本教材ではこれらをUnityにおきかえることで高精細なグラフィックや 59 | 多様なインターフェースを実現することが出来ます。 60 | 61 | こうしたUnityの特徴は現実で動作するロボットの状態を端末から確認するといった 62 | いわゆるデジタルツイン分野においても非常に有効です。 63 | 64 | [INTRO1](./intro1.md)ではROS 2とUnityが連携することの利点として 65 | Unityの強みを少し掘り下げてご紹介します。 66 | 67 | --- 68 | 69 | * [目次](./intro2.md) 70 | * \> [INTRO1](./intro1.md) -------------------------------------------------------------------------------- /docs/intro1.md: -------------------------------------------------------------------------------- 1 | # Unityとロボットが連携することの利点 2 | ## UI作成が簡単 3 | キーボードやマウス、ゲームコントローラ、タッチパネルなどを用いたUIを簡単に作成することができます。 4 | 5 | 本教材ではUnityに最初から用意されているボタンの部品を使用してRaspberry Pi Mouseを操作できるようにします。 6 | 7 | ![](./images/intro1-1-1.png) 8 | 9 | ## マルチプラットフォームサポート 10 | 様々なプラットフォーム上で動作するので使い方に応じて適切な端末を選ぶことができます。 11 | 12 | 例えばPCで動作するプロジェクトをスマートフォン向けにビルドすることが可能です。 13 | 14 | 現実のロボットを操作する際は、持ち運びしやすい端末から操作できるととても便利です。 15 | 16 | またARやVR向けの対応も容易なため、より没入的で直感的なUIを作成することもできます。 17 | 18 | 対応プラットフォームについて詳しくは[こちら](https://unity.com/ja/features/multiplatform)をご覧ください。 19 | 20 | ![](./images/intro1-2.jpg) 21 | 22 | ## リアルタイムレンダリング 23 | Unityはリアルタイムレンダリングを実現するための様々な仕組みを統合した開発環境です。 24 | 25 | 実機の動きをなめらかに表現できるだけでなく、低遅延のインタラクションを実現することが出来ます。 26 | 27 | また、HDRP(High Definition Render Pipeline)を使うと現実に対してより忠実で高品質な表現が行えたり、URP(Universal Render Pipeline)という仕組みを使うと複雑なレンダリングの処理を簡易な処理に置き換えることで負荷を低減させたりすることが出来ます。 28 | 29 | 参考までに、下記画像は左がUnity標準のBuilt-in、右がより高精細なHDRPを用いた画面です。 30 | 31 | ![](./images/intro1-3.png) 32 | 33 | ## 豊富な情報や素材 34 | [公式チュートリアル](https://learn.unity.com/course/unity-tutorials-for-beginners-jp)や[マニュアル](https://docs.unity3d.com/ja/2020.3/Manual/UnityManual.html)、Unity公式の素材集である[Unity Asset Store](https://assetstore.unity.com/?locale=ja-JP)、個人のブログ記事などゲーム開発で培われた様々な技術や素材が蓄積されています。 35 | 36 | Unityの使い方等でわからないことが出てきたら、こちらの[コミュニティ](https://unity.com/ja/community)のページや、[Unityユーザー助け合い所](https://www.facebook.com/groups/unityuserj)(日本語での質問が可能)にアクセスしてみて下さい。 37 | 38 | さらなる学びや情報収集には、Unity Japan が運営する [Unity Learning Materials](https://learning.unity3d.jp/)もおすすめです。 39 | 40 | ![](./images/intro1-4.png) 41 | 42 | --- 43 | 44 | * [目次](./intro2.md) 45 | * < [INTRO0](./intro0.md) 46 | * \> [INTRO2](./intro2.md) -------------------------------------------------------------------------------- /docs/intro3.md: -------------------------------------------------------------------------------- 1 | # Raspberry Pi Mouseのセットアップ 2 | 3 | Raspberry Pi Mouseのセットアップを行います。 4 | 5 | [Software Tutorials](https://rt-net.github.io/tutorials/raspimouse/products.html)を参考にして、 6 | ROS 2のサンプルプログラムが動かせる状態のRaspberry Pi Mouseを用意してください。 7 | 8 | 動作確認済みのROS 2のバージョンは以下の通りです。 9 | 10 | * ROS 2 Foxy Fitzroy 11 | * ROS 2 Humble Hawksbill 12 | 13 | まず、Raspberry Pi Mouseの電源を入れます。 14 | その後、`Tera Term`のような端末エミュレータを利用するなどして、 15 | PCからRaspberry Pi MouseへSSHで接続します。 16 | このとき、PCとRaspberry Pi Mouseが同じネットワークに接続していることを確認してください。 17 | 18 | * SSHによる接続方法に関することは、「SSH Windows 使い方」 などのキーワードでネット検索すると多くの情報が得られますので参考にしてみて下さい。 19 | 20 | 次に、以下のコマンドを実行して、Raspberry Pi Mouseに`rplidar_ros`をインストールします。 21 | `rplidar_ros`はRaspberry Pi Mouseに搭載しているRPLiDARを使用するためにインストールします。 22 | 23 | ```sh 24 | # パッケージをclone 25 | mkdir -p ~/ros2_ws/src 26 | cd ~/ros2_ws/src 27 | git clone -b ros2 https://github.com/allenh1/rplidar_ros.git 28 | 29 | # パッケージをビルド 30 | cd ~/ros2_ws/ 31 | colcon build --symlink-install 32 | source ./install/setup.bash 33 | ``` 34 | 35 | さらに、以下のコマンドを実行して、`v4l2_camera`をインストールします。 36 | `v4l2_camera`はRaspberry Pi Mouseに搭載しているウェブカメラを使用するためにインストールします。 37 | 38 | ```sh 39 | # ROS 2 Foxy Fitzroyの場合 40 | sudo apt install ros-foxy-v4l2-camera 41 | # ROS 2 Humble Hawksbillの場合 42 | sudo apt install ros-humble-v4l2-camera 43 | ``` 44 | 45 | 最後に、以下のコマンドを順番に実行して、`ROS-TCP-Endpoint`をインストールします。 46 | `ROS-TCP-Endpoint`はROS 2とUnityの間で通信を行うためにインストールします。 47 | 48 | ```sh 49 | cd ~/ros2_ws/src/ 50 | git clone -b ROS2v0.7.0 https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git 51 | 52 | cd ~/ros2_ws 53 | colcon build --symlink-install 54 | ``` 55 | 56 | 以上で、Raspberry Pi Mouseで使用するパッケージの準備ができました。 57 | 58 | --- 59 | 60 | * [目次](./intro2.md) 61 | * < [INTRO2](./intro2.md) 62 | * \> [STEP0](./step0.md) -------------------------------------------------------------------------------- /docs/step0.md: -------------------------------------------------------------------------------- 1 | # Unityのセットアップ 2 | 3 | ## 概要 4 | 5 | Unityプロジェクトの作成方法について紹介します。 6 | 7 | ## 動作確認済環境 8 | 9 | * Windows 10 | * Windows 10 Home バージョン 21H2 11 | * Windows 11 Pro バージョン 22H2 12 | * Unity 13 | * Unity 2021.3.4f1 14 | * Unity 2022.3.8f1 15 | 16 | ## Unityプロジェクトの作成 17 | 18 | 今回はLTS版の使用を推奨します。過去のバージョンについては[Unity ダウンロード アーカイブ](https://unity3d.com/jp/get-unity/download/archive)から取得できます。 19 | 20 | 3Dテンプレートを指定してプロジェクトを作成します。ここではプロジェクト名を「MobileRobotUITutorialProject」など他のプロジェクトと区別できる名称をつけておきます。 21 | 22 | ![](./images/step0-1.png) 23 | 24 | 何も表示されていないSceneが起動すればUnityプロジェクトの作成は完了です。 25 | 26 | ![](./images/step0-2.png) 27 | 28 | ## 本STEPのまとめ 29 | 30 | Unityプロジェクトの作成方法について紹介しました。 31 | 32 | 次は[STEP1](./step1.md)に進み、今回作成したUnityプロジェクトにRaspberry Pi Mouseのハードウェアモデルデータを読み込みます。 33 | 34 | --- 35 | 36 | * [目次](./intro2.md) 37 | * < [INTRO3](./intro3.md) 38 | * \> [STEP1](./step1.md) -------------------------------------------------------------------------------- /docs/step4.md: -------------------------------------------------------------------------------- 1 | # オドメトリの可視化 2 | 3 | ## 概要 4 | 5 | ロボットのオドメトリを可視化する方法を紹介します。 6 | 今回はオドメトリ受信用スクリプトとオドメトリ描画用スクリプトを組み合わせて可視化します。 7 | 8 | 本ステップ実行後の状態のSceneファイルは[`MobileRobotUITutorialProject/Assets/Scenes/Step4.unity`](../MobileRobotUITutorialProject/Assets/Scenes/Step4.unity)から入手できます。 9 | 10 | ## 動作確認済環境 11 | 12 | * Windows 13 | * Windows 10 Home バージョン 21H2 14 | * Windows 11 Pro バージョン 22H2 15 | * Unity 16 | * Unity 2021.3.4f1 17 | * Unity 2022.3.8f1 18 | * [Unity-Technologies/ROS-TCP-Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) v0.7.0 19 | * ROS 2 20 | * ROS 2 Foxy Fitzroy 21 | * ROS 2 Humble Hawksbill 22 | 23 | ## 手順 24 | 25 | ### 1. オドメトリ受信用スクリプトをアタッチ 26 | 27 | [STEP3](./step3.md)までと同様に`Assets/Scripts/OdomSubscriber.cs`を`Subscriber`オブジェクトにアタッチします。 28 | 29 | ここまでで`Subscriber`に追加したコンポーネントは`Tf Subscriber`と`Odom Subscriber`の2つになります。 30 | 31 | ![](./images/step5-1.png) 32 | 33 | ### 2. オドメトリ描画用スクリプトをアタッチ 34 | 35 | まず、スクリプトを用意します。[`UnityScripts/OdometryViewer`](../UnityScripts/OdometryViewer)フォルダをUnityプロジェクトの`Assets`フォルダにコピー(`Assets/OdometyViewer`として配置)します。 36 | 37 | ![](./images/step5-2.png) 38 | 39 | 次に用意したスクリプトをアタッチしていきます。 40 | `Assets/OdometyViewer/Scripts/OdometryViewer.cs`を`raspimouse`オブジェクトにアタッチします。 41 | 42 | ![](./images/step5-3.gif) 43 | 44 | `raspimouse`オブジェクトを選択してInspectorウィンドウを開き、`Odometry Viewer`コンポーネントの`Subscriber Game Object`に`Subsciber`オブジェクトを、`Arrow Prefab`に`Assets/OdometryViewer/Prefabs/Arrows-red.prefab`を指定します。 45 | 46 | ![](./images/step5-4.gif) 47 | 48 | 以上で可視化の準備ができました。 49 | 50 | ### 3. Unityプロジェクトの実行 51 | 52 | [STEP2](./step2.md)と同様に、 53 | 54 | 1. 再生モードでUnityプロジェクトを実行 55 | 2. Raspberry Pi Mouseでコマンドを実行 56 | 3. 操作ボタンから移動指令送信 57 | 58 | の手順でロボットを動かしてみます。 59 | 60 | ![](./images/step5-5.gif) 61 | 62 | [STEP3](./step3.md)では実機の移動ロボットに合わせてUnityのロボットも動かすことができましたが、 63 | 今回はそれに加えてオドメトリを可視化することができました。 64 | 65 | `Odometry Viewer`コンポーネントの`Length Of History`のパラメータを変えることで描画するオドメトリの履歴数を変更できます。 66 | 67 | ![](./images/step5-6.png) 68 | 69 | ![](./images/step5-7.png) 70 | 71 | 最後に、動作確認が終わったら全ての端末でCtrl+Cを押してコマンドを終了させます。 72 | 73 | ## 本STEPのまとめ 74 | 75 | オドメトリ受信用スクリプトとオドメトリ描画用スクリプトを組み合わせて可視化する方法を紹介しました。 76 | さらにパラメータを変更して描画する履歴の数を変更する方法も紹介しました。 77 | 78 | 次は[STEP5](./step5.md)でLiDARデータの可視化方法を紹介します。 79 | 80 | --- 81 | 82 | * [目次](./intro2.md) 83 | * < [STEP3](./step3.md) 84 | * \> [STEP5](./step5.md) -------------------------------------------------------------------------------- /docs/step5.md: -------------------------------------------------------------------------------- 1 | # LiDARデータの可視化 2 | 3 | ## 概要 4 | 5 | ロボットに搭載されているLiDARデータの可視化方法を紹介します。 6 | 今回もオドメトリ可視化の際と同様にLiDARデータ受信用スクリプトとLiDARデータ描画用スクリプトを組み合わせて可視化します。 7 | 8 | 本ステップ実行後の状態のSceneファイルは[`MobileRobotUITutorialProject/Assets/Scenes/Step5.unity`](../MobileRobotUITutorialProject/Assets/Scenes/Step5.unity)から入手できます。 9 | 10 | ## 動作確認済環境 11 | 12 | * Windows 13 | * Windows 10 Home バージョン 21H2 14 | * Windows 11 Pro バージョン 22H2 15 | * Unity 16 | * Unity 2021.3.4f1 17 | * Unity 2022.3.8f1 18 | * [Unity-Technologies/ROS-TCP-Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) v0.7.0 19 | * ROS 2 20 | * ROS 2 Foxy Fitzroy 21 | * ROS 2 Humble Hawksbill 22 | 23 | ## 手順 24 | 25 | ### 1. LiDARデータ受信用スクリプトをアタッチ 26 | 27 | [STEP4](./step4.md)までと同様に`Assets/Scripts/LaserScanSubscriber.cs`を`Subscriber`オブジェクトにアタッチします。 28 | 29 | ここまでで`Subscriber`に追加したコンポーネントは`Tf Subscriber`、`Odom Subscriber`、`Laser Scan Subscriber`の3つになります。 30 | 31 | ![](./images/step6-1.png) 32 | 33 | ### 2. LiDARデータ描画用スクリプトをアタッチ 34 | 35 | まず、スクリプトを用意します。[`UnityScripts/PointCloud`](../UnityScripts/PointCloud)フォルダをUnityプロジェクトの`Assets`フォルダにコピー(`Assets/PointCloud`として配置)します。 36 | 37 | ![](./images/step6-2.png) 38 | 39 | 次に用意したスクリプトをアタッチしていきます。 40 | `Assets/PointCloud/Scripts/PointCloudLocator.cs`を`lidar_link`オブジェクト(`raspimouse/base_footprint/base_link/urg_mount_link/lidar_link`)にアタッチします。 41 | 42 | ![](./images/step6-3.gif) 43 | 44 | `lidar_link`オブジェクトを選択してInspectorウィンドウを開き、`Point Cloud Locator`コンポーネントの`Subscriber Game Object`に`Subsciber`オブジェクトを、`Point Prefab`に`Assets/PointCloud/Prefabs/Sphere.prefab`を指定します。 45 | 46 | ![](./images/step6-4.gif) 47 | 48 | 以上で可視化の準備ができました。 49 | 50 | ### 3. Unityプロジェクトの実行 51 | 52 | [STEP2](./step2.md)と同様に、 53 | 54 | 1. 再生モードでUnityプロジェクトを実行 55 | 2. Raspberry Pi Mouseでコマンドを実行 56 | 3. 操作ボタンから移動指令送信 57 | 58 | の手順でロボットを動かしてみます。 59 | 60 | ![](./images/step6-5.gif) 61 | 62 | [STEP4](./step4.md)で可視化したオドメトリに加えてLiDARデータを可視化することができました。 63 | 64 | `Assets/PointCloud/Scripts/PointCloudLocator.cs`の`private static readonly int MaxPointCount = 100;`を書き換えることで 65 | 描画する点群の数を変えることができます。 66 | 67 | 最後に、動作確認が終わったら全ての端末でCtrl+Cを押してコマンドを終了させます。 68 | 69 | ### 本STEPのまとめ 70 | 71 | LiDARデータ受信用スクリプトとLiDARデータ描画用スクリプトを組み合わせて可視化する方法を紹介しました。 72 | さらに描画する点群の数を変更する方法も紹介しました。 73 | 74 | 次は[STEP6](./step6.md)でカメラ画像の可視化方法を紹介します。 75 | 76 | --- 77 | 78 | * [目次](./intro2.md) 79 | * < [STEP4](./step4.md) 80 | * \> [STEP6](./step6.md) -------------------------------------------------------------------------------- /docs/step6.md: -------------------------------------------------------------------------------- 1 | # カメラデータの可視化 2 | 3 | ## 概要 4 | 5 | Raspberry Pi Mouseに搭載したウェブカメラのデータを可視化する方法を紹介します。 6 | 7 | 本ステップ実行後の状態のSceneファイルは[`MobileRobotUITutorialProject/Assets/Scenes/Step6.unity`](../MobileRobotUITutorialProject/Assets/Scenes/Step6.unity)から入手できます。 8 | 9 | ## 動作確認済環境 10 | 11 | * Windows 12 | * Windows 10 Home バージョン 21H2 13 | * Windows 11 Pro バージョン 22H2 14 | * Unity 15 | * Unity 2021.3.4f1 16 | * Unity 2022.3.8f1 17 | * [Unity-Technologies/ROS-TCP-Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) v0.7.0 18 | * ROS 2 19 | * ROS 2 Foxy Fitzroy 20 | * ROS 2 Humble Hawksbill 21 | 22 | ## 手順 23 | 24 | ## 1. カメラデータ受信用スクリプトをアタッチ 25 | 26 | [STEP6](./step6.md)までと同様に`Assets/Scripts/ImageSubscriber.cs`を`Subscriber`オブジェクトにアタッチします。 27 | 28 | ここまでで`Subscriber`に追加したコンポーネントは`Tf Subscriber`、`Odom Subscriber`、`Laser Scan Subscriber`、`Image Subscriber`の4つになります。 29 | 30 | ![](./images/step7-1.png) 31 | 32 | ## 2. カメラデータ描画用GameObjectの作成と描画設定 33 | 34 | Hierarchyウィンドウの`Canvas`オブジェクトの子オブジェクトとして`RawImage`形式のGameObjectを`RawImage`という名前で作成します。 35 | 36 | ![](./images/step7-2.png) 37 | 38 | ![](./images/step7-3.png) 39 | 40 | `RawImage`オブジェクトについてInspectorウィンドウから表示位置を変更します。 41 | `Rect Transform`コンポーネントのAnchor Presetsは右下寄せになるright-bottomを選択します。 42 | Pos X, Pos Y, Pos Z, Width, Heightはそれぞれ-170, 460, 0, 320, 240にします。 43 | 44 | ![](./images/step7-4.png) 45 | 46 | 次に、`Subscriber`オブジェクトを選択してInspectorウィンドウを開き、`Image Subscriber`コンポーネントの`Raw Image`に先程作成した`RawImage`オブジェクトをを指定します。 47 | 48 | ![](./images/step7-5.gif) 49 | 50 | *`Subscriber`オブジェクトの`Image Subscriber`にて、`ROS Topic Name`が`image_raw/compressed`になっていることを確認してください。 51 | 52 | ### 3. Unityプロジェクトの実行 53 | 54 | [STEP2](./step2.md)と同様に、 55 | 56 | 1. 再生モードでUnityプロジェクトを実行 57 | 2. Raspberry Pi Mouseでコマンドを実行 58 | 3. 操作ボタンから移動指令送信 59 | 60 | の手順でロボットを動かしてみます。 61 | 62 | ![](./images/step7-7.gif) 63 | 64 | オドメトリとLiDARデータに加えて、カメラデータを可視化することができました。 65 | 66 | 最後に、動作確認が終わったら全ての端末でCtrl+Cを押してコマンドを終了させます。 67 | 68 | ### 本STEPのまとめ 69 | 70 | カメラデータ受信用スクリプトとカメラデータ描画用オブジェクトを追加し、カメラデータを可視化する方法を紹介しました。 71 | 72 | --- 73 | 74 | * [目次](./intro2.md) 75 | * < [STEP5](./step5.md) 76 | * \> [STEP7](./step7.md) -------------------------------------------------------------------------------- /docs/step8.md: -------------------------------------------------------------------------------- 1 | # スキャンした3Dモデルの表示 2 | 3 | ## 概要 4 | 5 | スマートフォンを用いてスキャンした部屋の3Dモデルを、Unity上で表示する方法を紹介します。 6 | 7 | 本ステップ実行後の状態のSceneファイルは[`MobileRobotUITutorialProject/Assets/Scenes/Step8.unity`](../MobileRobotUITutorialProject/Assets/Scenes/Step8.unity)から入手できます。 8 | 9 | ## 動作確認済環境 10 | 11 | * Windows 12 | * Windows 10 Home バージョン 21H2 13 | * Windows 11 Pro バージョン 22H2 14 | * Unity 15 | * Unity 2021.3.4f1 16 | * Unity 2022.3.8f1 17 | * [Unity-Technologies/ROS-TCP-Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) v0.7.0 18 | * ROS 2 19 | * ROS 2 Foxy Fitzroy 20 | * ROS 2 Humble Hawksbill 21 | * iPhone 12 Pro 22 | * Scaniverse 23 | 24 | ## 手順 25 | 26 | ### 1. 部屋の3Dモデルの準備 27 | 28 | 部屋の3Dモデルを用意します。 29 | 本教材では、例としてiOS向けの3Dスキャンアプリ「Scaniverse」を使用して部屋のスキャンを行い、3Dモデルを作成します。 30 | Unityでインポートできるファイル形式の3Dモデルを出力できるなら他のアプリでも問題ありません。 31 | 32 | まず、3Dスキャンアプリをスマートフォン(本教材ではiPhone 12 Pro)にインストールします。 33 | アプリの指示に従って部屋をスキャンし、Unityがインポートできるファイル形式(FBX形式など)で3Dモデルを出力してください。 34 | 35 | ![](images/step8-97.png) 36 | 37 | 以上で部屋の3Dモデルの準備が完了しました。 38 | 39 | ### 2. 3Dモデルの表示 40 | 41 | スキャンした部屋の3DモデルをUnityにインポートします。 42 | 43 | まず、`Assets/Models`フォルダ内に、作成した3Dモデルのファイルをドラッグアンドドロップします。 44 | インポート自体はこれだけで完了です。 45 | 46 | 次に、3Dモデルを表示してみましょう。 47 | `Assets/Models`フォルダ内の3DモデルをHierarchyへドラッグアンドドロップします。 48 | 3Dモデルが表示されていれば成功です。 49 | 部屋の位置や姿勢を調整したい場合は、表示している3Dモデルを選択してInspectorの`Transform`の`Position`や`Rotation`の値を変更してください。 50 | 51 | 3DモデルがFBX形式の場合、インポート時にテクスチャが設定されず、3Dモデル全体が真っ白になってしまうことがあります。 52 | 適切にテクスチャを設定するためには`Assets/Models`フォルダにある3Dモデルをクリックして、 53 | Inspectorの`Materials`タブにある`Location`を`Use External Materials(Legacy)`に変更する必要があります。 54 | そして、`Apply`ボタンを押すことでテクスチャの設定が反映されるはずです。 55 | 56 | ![](images/step8-99.png) 57 | 58 | 以上で、3Dモデルを表示させることができました。 59 | 60 | ### 3. Unityプロジェクトの実行 61 | 62 | [STEP2](./step2.md)と同様に、 63 | 64 | 1. 再生モードでUnityプロジェクトを実行 65 | 2. Raspberry Pi Mouseでコマンドを実行 66 | 3. 操作ボタンから移動指令送信 67 | 68 | の手順でロボットを動かしてみます。 69 | 70 | ![](images/step8-98.gif) 71 | 72 | スキャンした部屋の3Dモデル上で、Raspberry Pi Mouseを走行させることができました。 73 | 74 | 最後に、動作確認が終わったら全ての端末でCtrl+Cを押してコマンドを終了させます。 75 | 76 | ## 本STEPのまとめ 77 | 78 | スマートフォンでスキャンした部屋の3DモデルをUnity上に表示しました。 79 | 80 | --- 81 | 82 | * [目次](./intro2.md) 83 | * < [STEP7](./step7.md) 84 | * \> [STEP9](./step9.md) --------------------------------------------------------------------------------