{"version":1,"pages":[{"id":"yiiUStUNE2UL6DB46LOj","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_Ewn7g","description":""},{"id":"01Zzq8aTW5RFTZcggU37","title":"ROS2","pathname":"/ros","siteSpaceId":"sitesp_Ewn7g"},{"id":"ZCA50gTLJaFzalUCEJ3O","title":"Index","pathname":"/ros/index","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"lBvgQxoAsSA8qtcObARR","title":"IDE and CMake Setup","pathname":"/ros/ide-and-cmake-setup","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"I9rpZIwYEFl8EiAoEqZs","title":"How to add additional include search path","pathname":"/ros/ide-and-cmake-setup/how-to-add-additional-include-search-path","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"IDE and CMake Setup"}]},{"id":"8CAcyCaPbyLM2czU4krN","title":"ROS2 Building Blocks","pathname":"/ros/ros2-building-blocks","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"RTFanw9a7XD3tWwEMBKT","title":"ROS Workspace and Package Layout","pathname":"/ros/ros2-building-blocks/ros-workspace-and-package-layout","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"HIzwBGwqrJ47xnAzW5Lk","title":"Launch File","pathname":"/ros/ros2-building-blocks/launch-file","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"nwExkyG7n2hFIZ1mxl8E","title":"tf2","pathname":"/ros/ros2-building-blocks/tf2","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"ly1ZAQpMZU6aDS1JqvLj","title":"Quality of Service","pathname":"/ros/ros2-building-blocks/quality-of-service","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"WrEWzkRLXVU89Lh2kqdY","title":"Configurations","pathname":"/ros/ros2-building-blocks/configurations","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"mGsXDw5AtfbK8TYKxKgA","title":"Rviz Configuration","pathname":"/ros/ros2-building-blocks/configurations/rviz-configuration","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"},{"label":"Configurations"}]},{"id":"UMYrVETKA7xdyYyyjd0x","title":"Built-in Types","pathname":"/ros/ros2-building-blocks/built-in-types","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"}]},{"id":"fZk5Ci9EFr1GiffRbAkZ","title":"Built-in Message Type","pathname":"/ros/ros2-building-blocks/built-in-types/built-in-message-type","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Building Blocks"},{"label":"Built-in Types"}]},{"id":"Z4eKq33w3ZwRN8ah586F","title":"ROS Architecture","pathname":"/ros/ros-architecture","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"9Ckxo7lmjuZJaQelpJUL","title":"Intra-process Communication","pathname":"/ros/ros-architecture/intra-process-communication","siteSpaceId":"sitesp_Ewn7g","description":"","breadcrumbs":[{"label":"ROS2"},{"label":"ROS Architecture"}]},{"id":"KKG0JyR5b7hgangVP9zm","title":"Navigation and Planning","pathname":"/ros/navigation-and-planning","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"Q88An2bbG2RLS7dHfgLC","title":"Navigation Stack and Concepts","pathname":"/ros/navigation-and-planning/navigation-stack-and-concepts","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"}]},{"id":"Ehkeyq7AyUspnp6cJaIR","title":"Navigation2 Implementation Overview","pathname":"/ros/navigation-and-planning/navigation2-implementation-overview","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"}]},{"id":"fnS59oynWLRT1ncJv3xN","title":"Cost Map","pathname":"/ros/navigation-and-planning/navigation2-implementation-overview/cost-map","siteSpaceId":"sitesp_Ewn7g","emoji":"1f3d7","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"},{"label":"Navigation2 Implementation Overview"}]},{"id":"GntW98aOzDBMzdmmvKqs","title":"Obstacle Avoidance and DWB Controller","pathname":"/ros/navigation-and-planning/navigation2-implementation-overview/obstacle-avoidance-and-dwb-controller","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"},{"label":"Navigation2 Implementation Overview"}]},{"id":"f1eorohhMFfdjvWF0q00","title":"DWB Controller","pathname":"/ros/navigation-and-planning/dwb-controller","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"}]},{"id":"iu0rKtsiLKupH5gXDcvm","title":"Page 5","pathname":"/ros/navigation-and-planning/page-5","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Navigation and Planning"}]},{"id":"jNXE2813R6FwY7SMFDiM","title":"How to launch the Nav2 stack","pathname":"/ros/how-to-launch-the-nav2-stack","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"gMJAbYHm8sHxv64G3lD2","title":"ROS2 Control","pathname":"/ros/ros2-control","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"dTXwwktaORV8f2OKmEo5","title":"Online Resources","pathname":"/ros/ros2-control/online-resources","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Control"}]},{"id":"2ahicMN9tpfvNVAfr57u","title":"Overview of Codebase","pathname":"/ros/ros2-control/overview-of-codebase","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"ROS2 Control"}]},{"id":"Zu8E4g5Sy97J9JbzOcLa","title":"Cookbook","pathname":"/ros/cookbook","siteSpaceId":"sitesp_Ewn7g","emoji":"1f373","breadcrumbs":[{"label":"ROS2"}]},{"id":"k6y7hgF13eqeVDCKykKP","title":"Useful Commands","pathname":"/ros/cookbook/useful-commands","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"1BggULZzknCQrp981oo8","title":"How to specify parameters","pathname":"/ros/cookbook/how-to-specify-parameters","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"TNWmCgtviAIEzyeyf0T7","title":"How to build the workspace","pathname":"/ros/cookbook/how-to-build-the-workspace","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"fJiiSnLaRBPSXoISXjlA","title":"How to publish message to a topic from command line?","pathname":"/ros/cookbook/how-to-publish-message-to-a-topic-from-command-line","siteSpaceId":"sitesp_Ewn7g","emoji":"1f3d7","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"U2q12rxFnJgu1WjLwFod","title":"How to inspect service and make a service call","pathname":"/ros/cookbook/how-to-inspect-service-and-make-a-service-call","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"jVLHidzB1OJHnV3Fy0gm","title":"How to properly terminate ROS and Gazebo","pathname":"/ros/cookbook/how-to-properly-terminate-ros-and-gazebo","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"PnjpQsJazIASH0A6DbpP","title":"How to add and remove models in Gazebo simulation dynamically","pathname":"/ros/cookbook/how-to-add-and-remove-models-in-gazebo-simulation-dynamically","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"XwtBuQc76AFMcPa3H4KI","title":"How to spin nodes","pathname":"/ros/cookbook/how-to-spin-nodes","siteSpaceId":"sitesp_Ewn7g","emoji":"1f6a7","breadcrumbs":[{"label":"ROS2"},{"label":"Cookbook","emoji":"1f373"}]},{"id":"TCIJpL4fwXLOzRJZgZkg","title":"Tutorials","pathname":"/ros/tutorials","siteSpaceId":"sitesp_Ewn7g","emoji":"1f6d2","breadcrumbs":[{"label":"ROS2"}]},{"id":"TqE7PLjuRpwulV2ZY4SA","title":"Services and Communication between ROS2 and Gazebo","pathname":"/ros/tutorials/entity-management-service","siteSpaceId":"sitesp_Ewn7g","description":"","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"YdaNpQjZ2TIqvz90SZU8","title":"Subscription and Message Filters Demo","pathname":"/ros/tutorials/subscription-and-message-filters-demo","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"QVOuVjIE5uokaaAItxrG","title":"Executor and Spin Explained","pathname":"/ros/tutorials/executor-and-spin-explained","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"HV3EMayfGjCP9hWivaTs","title":"Lifecycle Node Demo","pathname":"/ros/tutorials/lifecycle-node-demo","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"5CL5JYDxfMT19dXSqNAP","title":"Robotic Arm Demo","pathname":"/ros/tutorials/robotic-arm-demo","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"fcPIZAEQCQ4Gwnj9Pw9A","title":"Multiple Robotic Arms Simulation Demo","pathname":"/ros/tutorials/multiple-robotic-arms-simulation-demo","siteSpaceId":"sitesp_Ewn7g","emoji":"2692","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"tyCIehLnET0381Kd6O2P","title":"Introduction to xacro","pathname":"/ros/tutorials/introduction-to-xacro","siteSpaceId":"sitesp_Ewn7g","emoji":"1f6a7","breadcrumbs":[{"label":"ROS2"},{"label":"Tutorials","emoji":"1f6d2"}]},{"id":"N3fQvzpVIshKYJshJ7oN","title":"Page","pathname":"/ros/page","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"}]},{"id":"pZh0QLRgBZ5oYE47I69n","title":"Tech Blog","pathname":"/ros/tech-blog","siteSpaceId":"sitesp_Ewn7g","emoji":"1f37a","breadcrumbs":[{"label":"ROS2"}]},{"id":"CEhNxEzpStxBkNS95OfU","title":"Difference between URDF and SDF and how to convert","pathname":"/ros/tech-blog/difference-between-urdf-and-sdf-and-how-to-convert","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"ROS2"},{"label":"Tech Blog","emoji":"1f37a"}]},{"id":"d4I8vc5nl059J65nrsJ9","title":"Gazebo","pathname":"/gazebo","siteSpaceId":"sitesp_Ewn7g"},{"id":"UzG84CnEKXyNngOCFsOx","title":"Index","pathname":"/gazebo/index","siteSpaceId":"sitesp_Ewn7g","description":"","breadcrumbs":[{"label":"Gazebo"}]},{"id":"F91B7A6Ri4fUBxsLfMQM","title":"Terminology","pathname":"/gazebo/terminology","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Gazebo"}]},{"id":"hnHWeMIvDNWozlLgn2of","title":"GUI","pathname":"/gazebo/gui","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Gazebo"}]},{"id":"ILdigESVPQVHdNvZhpIK","title":"World Frame and Axis","pathname":"/gazebo/world-frame-and-axis","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Gazebo"}]},{"id":"mlLQgMSPWGXx7qKQMmiA","title":"Cookbook","pathname":"/gazebo/cookbook","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Gazebo"}]},{"id":"5HFoStcPEEHLG9tvBzBW","title":"Page 1","pathname":"/gazebo/page-1","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Gazebo"}]},{"id":"nOjohxyVmRXVlPk5VLqQ","title":"Programming in Robotics","pathname":"/programming-in-robotics","siteSpaceId":"sitesp_Ewn7g"},{"id":"Sz8XCrj5EDb0aEkb5laQ","title":"C++","pathname":"/programming-in-robotics/c++","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Programming in Robotics"}]},{"id":"t8ray6ckNs5LdofGupAc","title":"CMake","pathname":"/programming-in-robotics/c++/cmake","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Programming in Robotics"},{"label":"C++"}]},{"id":"pdJ2FBUxe3irgteD7118","title":"Python","pathname":"/programming-in-robotics/python","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Programming in Robotics"}]},{"id":"dIV9Fn76L4VNtrRaQMiY","title":"Rust","pathname":"/programming-in-robotics/rust","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Programming in Robotics"}]},{"id":"a8Sb3svIGai3AFBVIiSj","title":"Mathematics in Robotics","pathname":"/review-of-mathematics","siteSpaceId":"sitesp_Ewn7g"},{"id":"LL8UPirHRmxKvSVrD3to","title":"Linear Algebra","pathname":"/review-of-mathematics/linear-algebra","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Mathematics in Robotics"}]},{"id":"EJBx0FKJkl4UNjHaZ44s","title":"Matrix Properties","pathname":"/review-of-mathematics/matrix-properties","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Mathematics in Robotics"}]},{"id":"EesGaUWn88v6LCbrj3yd","title":"Probability","pathname":"/review-of-mathematics/probability","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Mathematics in Robotics"}]},{"id":"rVw7rrPqXDvpLiWnT0tN","title":"Expectation-Maximization Algorithm","pathname":"/review-of-mathematics/probability/expectation-maximization-algorithm","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Mathematics in Robotics"},{"label":"Probability"}]},{"id":"qfCVSSPh7o9GVLoyDc6E","title":"Multivariable Function and Derivatives","pathname":"/review-of-mathematics/multivariable-function-and-derivatives","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Mathematics in Robotics"}]},{"id":"haJQVbSdAGVOg5Dzix6M","title":"Physics in Robotics","pathname":"/review-of-physics","siteSpaceId":"sitesp_Ewn7g"},{"id":"B6w5OdDYV4ARToHPYUV8","title":"Control of Dynamic Systems","pathname":"/control-of-dynamic-systems","siteSpaceId":"sitesp_Ewn7g"},{"id":"EgZBWsijXI2ddgABAWb4","title":"Dynamic Response and Transfer Function","pathname":"/control-of-dynamic-systems/dynamic-response-and-transfer-function","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Control of Dynamic Systems"}]},{"id":"FL25h614mKHzKZVQMxO0","title":"Block Diagram","pathname":"/control-of-dynamic-systems/block-diagram","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Control of Dynamic Systems"}]},{"id":"I9nOKFLBojomSrkN27oQ","title":"PID Controller","pathname":"/control-of-dynamic-systems/pid-controller","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Control of Dynamic Systems"}]},{"id":"vvBe3TgbyJzqGelShNme","title":"Robot Modeling and Control","pathname":"/robot-modeling-and-control","siteSpaceId":"sitesp_Ewn7g"},{"id":"0rCYyNjP9TfNVFAjaT5L","title":"Rotation and Homogeneous Transformation","pathname":"/robot-modeling-and-control/rotation-and-homogeneous-transformation","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Robot Modeling and Control"}]},{"id":"NSzwtScWkdMHgkffMoJs","title":"Probabilistic Robotics","pathname":"/probabilistic-robotics","siteSpaceId":"sitesp_Ewn7g"},{"id":"UraaQqHdeeboDA7JJjDO","title":"Bayes Filter","pathname":"/probabilistic-robotics/bayes-filter","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"WD9Pt1hleWlsDtkzNqhq","title":"Kalman Filter","pathname":"/probabilistic-robotics/kalman-filter","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"I8i3drkqWraLePkofHIF","title":"Particle Filter","pathname":"/probabilistic-robotics/particle-filter","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"NBpRPgpt1V9Kl7vKZKcd","title":"Discrete Bayes Filter","pathname":"/probabilistic-robotics/discrete-bayes-filter","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"IAyjlqiXxQIqIcLHnz7c","title":"Motion Model","pathname":"/probabilistic-robotics/motion-model","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"uV3KmqlixKq4sAyPIiNS","title":"Perception Model","pathname":"/probabilistic-robotics/perception-model","siteSpaceId":"sitesp_Ewn7g","description":"","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"zkA9NSFZONYUNa3xe6NU","title":"Localization","pathname":"/probabilistic-robotics/localization","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"feCDUXc2GMyJZe2ItV4I","title":"SLAM","pathname":"/probabilistic-robotics/slam","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Probabilistic Robotics"}]},{"id":"wyrBpDAsqrYbQCDxXPxO","title":"Miscellany","pathname":"/review-of-latex","siteSpaceId":"sitesp_Ewn7g"},{"id":"kTyVBVLeAfDXOxl5XrVQ","title":"Concept Index","pathname":"/concept-index","siteSpaceId":"sitesp_Ewn7g"},{"id":"NFSUCnxN43ImNeJhm4xQ","title":"Quaternions","pathname":"/concept-index/quaternions","siteSpaceId":"sitesp_Ewn7g","breadcrumbs":[{"label":"Concept Index"}]}]}