Start of trail Roomba Create Trajectory navigation bar

Table of Contents

Roomba Bump Wall-follow

Generates motion commands (velocity and radius of curvature) to reach the specified target and avoid obstacles using bump sensor.

Library

QUARC Targets/Devices/Third-Party/iRobot/Roomba/Applications

MATLAB Command Line

Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:

qc_open_library('quarc_library/Devices/Third-Party/iRobot/Roomba/Applications')

Description

Roomba Bump Wall-follow

The Roomba Bump Wall-follow block generates motion commands (velocity and radius of curvature) to reach a specified target position. It uses bump, distance, and angle sensory data for continuous localization of the robot and obstacle avoidance. The robot's coordinate is updated using the traveled distance and its current angular orientation with respect to its initial position. The updated coordinate may be inaccurate in case of wheel slip. The robot employs bump sensor to detect obstacles and it deploys wall-following approach to avoid the obstacle. The state output of this block shows the current robot position, orientation, distance to the target and presence of obstacles.

Input Ports

feedback

The sensor packet associated with sensor group 6 returned by Roomba (see Roomba Sensor Request block).

Output Ports

velocity

Velocity of the robot to reach the target position. Use this output as the velocity input of Roomba Drive block.

radius

Radius of curvature of the robot's motion to reach the target. Use this output as the radius input of Roomba Drive block.

sensor_id

Sensor group 6. Use this output as the packet ID input of Roomba Sensor Request block.

states

Include robot's (x, y) position, orientation, distance to the target and bump sensor's value.

Parameters and Dialog Box

Roomba Bump Wall-follow

Robot's Pose

The initial postion of the robot. It includes (x, y) coordinate (in mm) and orientation (in degrees) of the robot.

Target's Pose

The postion of the robot. It includes (x, y) coordinate (in mm) of the target.

Sample time

The sample time of the block. A sample time of 0 indicates that the block will be treated as a continuous time block. A positive sample time indicates that the block is a discrete time block with the given sample time. A sample time of -1 indicates that the block inherits its sample time.

Targets

Target Name

Compatible*

Model Referencing

Comments

QUARC Win32 Target

Yes

Yes

QUARC Win64 Target

Yes

Yes

QUARC Linux Nvidia Target

Yes

Yes

QUARC Linux QBot Platform Target

Yes

Yes

QUARC Linux QCar 2 Target

Yes

Yes

QUARC Linux QDrone 2 Target

Yes

Yes

QUARC Linux Raspberry Pi 3 Target

Yes

Yes

QUARC Linux Raspberry Pi 4 Target

Yes

Yes

QUARC Linux RT ARMv7 Target

Yes

Yes

QUARC Linux x64 Target

Yes

Yes

QUARC Linux DuoVero Target

Yes

Yes

QUARC Linux DuoVero 2016 Target

Yes

Yes

QUARC Linux Verdex Target

Yes

Yes

QUARC QNX x86 Target

Yes

Yes

Last fully supported in QUARC 2018.

Rapid Simulation (RSIM) Target

Yes

Yes

S-Function Target

No

N/A

Old technology. Use model referencing instead.

Normal simulation

Yes

Yes

* Compatible means that the block can be compiled for the target.

See Also

 

navigation bar