Robotic Sytems With Matlab
Robotics System Toolbox provides algorithms and hardware connectivity for developing autonomous robotics applications for ground vehicles, manipulators, and humanoid robots. Toolbox algorithms include path planning and path following for differential drive robots, scan matching, obstacle avoidance, and state estimation. For manipulator robots, the system toolbox includes algorithms for inverse kinematics, kinematic constraints, and dynamics using a rigid body tree representation. The system toolbox provides an interface between MATLAB and Simulink and the Robot Operating System (ROS) that enables you to test and verify applications on ROS-enabled robots and robot simulators such as Gazebo. It includes examples showing how to work with virtual robots in Gazebo and with actual ROS-enabled robots. Robotics System Toolbox supports C++ code generation, enabling you to generate a ROS node from a Simulink model and deploy it to a ROS network. Support for Simulink External Mode lets you view signals and change parameters while your deployed model is running. Robotics System Toolbox uses a fixed set of standards for units to ensure consistency across algorithms and applications. Unless specified otherwise, functions and classes in this toolbox represent all values in units based on the International System of Units (SI). In robotics applications, many different coordinate systems can be used to define where robots, sensors, and other objects are located. In general, the location of an object in 3-D space can be specified by position and orientation values. There are multiple posible representations for these values, some of which are specific to certain applications. Translation and rotation are alternative terms for position and orientation. Robotics System Toolbox supports representations that are commonly used in robotics and allows you to convert between them. You can transform between coordinate systems when you apply these representations to 3-D points. These supported representations are detailed below with brief explanations of their usage and numeric equivalent in MATLAB. Each representation has an abbreviation for its name. This is used in the naming of arguments and conversion functions that are supported in this toolbox. Setting up a ROS network allows for communication between different devices. Different participants or nodes all register with a ROS master to share information. The ROS master is unique and each ROS network only has one master. Each node is usually a separate device, although one device can have multiple nodes running. MATLAB acts as one of these nodes when using it to communicate with ROS. All devices must be connected to the same actual or virtual network for ROS connections to work. You can create a new ROS master in MATLAB, or you can connect to an existing ROS master that is running on a different device. If you connect to an external master, you have to know the IP address or hostname of the device. The initial ROS master connection is done by calling rosinit. Data communication is achieved by sending messages using entities called publishers, subscribers, and services. Publishers send data via topic names, which subscribers then receive over the network. Services use clients to request information from a server. The ROS network is a collection of nodes that are all connected to the ROS master. The number of nodes can be quite large depending on your application and devices. When nodes get registered with the master, communication with all other nodes becomes possible. Each node registers different publishers, subscribers, and services on the ROS master to send and receive information between nodes. Even though all nodes in the ROS network are registered with the master, data is exchanged directly between nodes.