diff --git a/noetic/conveyorbot/fiducials.md b/noetic/conveyorbot/fiducials.md index 0db0c15..79b0526 100644 --- a/noetic/conveyorbot/fiducials.md +++ b/noetic/conveyorbot/fiducials.md @@ -11,50 +11,29 @@ nav_exclude: false > *"A fiducial marker or fiducial is an object placed in the field of view of an imaging system, for use as a point of reference or a measure. It may be either something placed into or on the imaging subject, or a mark or set of marks in the reticle of an optical instrument."* -Fiducial markers (also known as AR markers) are a type of robust QR code that only encodes a simple number, and are used by ConveyorBot as landmarks, which it can use to navigate the environment of your choosing. +Fiducial markers, also known as augmented reality (AR) markers, function as robust QR codes that encode a simple number. ConveyorBot uses these markers as landmarks to navigate through various environments. ## Marker Types -ConveyorBot uses several types of fiducials: +ConveyorBot utilizes several fiducial markers: -| 🟩 **Go marker** has a single arrow which point to the direction where the ConveyorBot will drive. | | -| 🟥 **Stop marker** is made to halt the ConveyorBot in that spot. After the ConveyorBot moves on top of the Stop marker it rotates in a direction of a marker arrow. While ConveyorBot waits on a Stop marker the user can load or unload the packages. The robot will resume following markers when user presses the CONTINUE button on the touchscreen of the ConveyorBot. | | -| 🟦 **Turn marker** is made for creating crossroads. Crossroad is a couple of markers in the same location (they must not overlap!), where each is pointing in an arbitrary/different direction. Purpose of Turn markers and crossroads is to change the driving direction of the ConveyorBot. | | -| 🟪 **Bidirectional marker** is the only marker with 2 arrows in it. ConveyorBot drives allong the arrow that requires less robot rotation. Bidirectional marker is good for two-way routes where ConveyorBot requires to move in both directions for example narrow aisles where there is not enough space for both a forward and return path. | | +| 🟩 **Go marker** displays a single arrow, directing the ConveyorBot's path. | | +| 🟥 **Stop marker** instructs the ConveyorBot to halt at a specific location. Once the robot stops on this marker, it rotates in the direction indicated by the arrow. Users can load or unload packages while the robot remains stationary. To resume operation, press the CONTINUE button on the ConveyorBot's touchscreen. | | +| 🟦 **Turn marker** should be used to create crossroads by combining multiple markers in the same area without overlap. Each marker points in a different direction, allowing the ConveyorBot to change its driving path. | | +| 🟪 **Bidirectional marker** is unique, featuring two arrows. The ConveyorBot follows the arrow that requires less rotation. This marker is ideal for two-way routes, such as narrow aisles where separate forward and return paths are impractical. | |
-ConveyorBot can be used either with STag or ArUco markers (default and recommended being STag). The analogy of marker types is the same for both. Each marker has a unique numeric ID, which is written on it. This way marker types are correctly distinguished which correspond to the correct ConveyorBot manevers. +ConveyorBot works with both STag and ArUco markers, though STag is the default and recommended option. All marker types function the same way for both systems. Each marker has a unique numeric ID that ensures the correct ConveyorBot maneuvers are executed. -ConveyorBot markers specifically, are rugged prefabricated sticky vinyl stickers that can be peeled off and placed on another floor location. However, it's not recommended to peel them off too many times as they'll stick less each time. +Specifically designed for ConveyorBot, these markers are durable, prefabricated vinyl stickers that can be peeled off and repositioned as needed. However, their adhesive strength decreases with each reapplication. Initially, we suggest using removable tape, like masking tape, to secure the markers. Once you're satisfied with their placement, use the adhesive backing to permanently affix them to the floor. -## Generating Markers +## Obtaining Additional Markers -You can also print out markers on regular paper, though this requires a few modifications on the robot side (mainly marker size). We've provided a selection of scripts that offer a simple terminal UI, which enables user to re-configure fiducials according to their need. - -Said scripts can be found in the ConveyorBot repository in the `breadcrumb/breadcrumb_detect/scripts` directory: - -- `ArUco/gen_markers.py` -> generate Aruco markers with frames -- `STag/gen_markers_autogen.py` -> generate STag markers with frames by generating also the inner part. -- `STag/gen_markers.py` -> generate STag markers with frames by getting the inner part from downloaded image library. Download the required images from [here](https://drive.google.com/drive/folders/0ByNTNYCAhWbIV1RqdU9vRnd2Vnc). - -Script were tested using python2.7. - -### ArUco Dictionary ID - -You can generate ArUco markers from any dictionary you prefer. -Make sure you set the corresponding `dictionary` parameter in launch file. -We performed most of the test with dictionary with **ID 7**. -For more information about ArUco refer to [`ArUco`](http://docs.opencv.org/trunk/d5/dae/tutorial_aruco_detection.html). - -### STag Library HD - -You can generate STag markers from any library you prefer. -Make sure you set the corresponding `libraryHD` parameter in launch file. -We performed most of the test with library **HD15**, which suited our needs. -For more information about STag refer to [`STag`](https://github.com/usrl-uofsc/stag_ros). +If you run out of the markers provided with your ConveyorBot, you can request additional ones from UbiquityRobotics. We can either print new markers for you or send a PDF for you to print independently. Please note that when printing, the markers must be the exact size specified in the PDF (the side of the inner black square containing the white shape should be 18 cm long). ### Packs -Generally each pack should correspond to a standalone route, but you can generate yourself packs according to your preference. -Take note that each marker has a unique id, while a number is unique only to the pack. \ No newline at end of file +A "pack" refers to the number on each marker, indicating the "marker setup" to which it belongs. A marker setup is a group of markers that form a complete navigation path for the robot. Robots cannot move between different marker setups by following any marker sequence. Typically, a marker setup consists of all markers that create the main circular route and its connected branches. + +Using pack numbers is not mandatory, but it can be a convenient way to differentiate between multiple marker setups. Each marker within a setup must have a unique ID. If you have two or more setups, you can use a marker with the same ID in each, but only once per setup. The Route Setup section will provide more details on this topic. \ No newline at end of file diff --git a/noetic/conveyorbot/routesetup.md b/noetic/conveyorbot/routesetup.md index 7615a39..09df148 100644 --- a/noetic/conveyorbot/routesetup.md +++ b/noetic/conveyorbot/routesetup.md @@ -9,57 +9,58 @@ nav_exclude: false # Route Setup -To set up a route you'll first have to place [fiducial markers](noetic_conveyorbot_fiducials) in desired locations, and then use the touchscreen to set up which turn markers each robot should follow. +To set up a route, first place [fiducial markers](noetic_conveyorbot_fiducials) in desired locations, then use the touchscreen to specify which turn markers each robot should follow. -## How to place floor markers - -To make sure your setup works as intended, set of rules need to be followed to prevent undesired behaviour: - -- Each marker should accurately point towards the next one
- -- Before sticking markers to the ground using their strong adhesive back side, it is recommended to stick them to the ground using some tape, so that you can test if your route setup is correct. Be careful that you don't cover the inner black part of the marker with the tape. After you've made sure the route is setup correctly, you can stick the markers by removing their back side. Stick the markers onto clean, smooth floor.
- -- Route loops should be set up in a way that makes the robots turn only left or right depending on where the lidar is mounted. This is done to prevent blind spot collisions and to simplify robot to robot interactions.
+Read the [usage guide](noetic_conveyorbot_usage) section first to understand how routes work. -- TURN markers should be used to create crossroads (or switches, in railroad terms)
+**Note that this page is a work in progress, and some parts might be outdated. If you are unsure about some details, contact Ubiquity Robotics support.** -- GO markers should be used for one-way routes, where robot can drive only towards the next marker.
+## How to place floor markers -- STOP markers will make the robot stop and turn to continue, so make sure it's possible to continue the route in the direction of the arrow.
+To ensure your setup works as intended, follow these rules to prevent undesired behavior: -- BIDIRECTIONAL markers should be used for two-way routes, where the robot can drive in both directions while driving straight (e.g. to and from a contact charger). The robot should never approach the BIDIRECTIONAL markers from the side, since it's not clear which way it should turn. If you expect to have more than one robot on a route, you should have a seperate outbound and return path otherwise robots may meet head to head, which will cause both robots to stop. BIDIRECTIONAL markers should only be used on branches where you expect only one robot to be present in that branch at a time.
+- Each marker should accurately point towards the next one. +- Markers shouldn't be too close together (crossroads are exceptions). +- Before permanently sticking markers to the ground using their strong adhesive back side, use tape to test your route setup. Don't cover the inner black part of the marker with tape. Once the route is set up correctly, stick the markers to a clean, smooth floor. +- Route loops should be configured so that robots turn only left or right depending on where the lidar is mounted. This prevents "T-shaped" collisions and simplifies robot interactions. Currently, place the lidar in "shell left" position and set up routes for left turns (robot drives counter-clockwise from a bird's-eye view). This limitation will be removed soon, allowing for route setups in both directions. +- Use TURN markers to create crossroads (or switches, in railroad terms). +- Use GO markers for one-way routes, where the robot can drive only towards the next marker. +- STOP markers make the robot stop and turn to continue, so ensure it's possible to continue the route in the direction of the arrow. +- Use BIDIRECTIONAL markers for two-way routes, where the robot can drive in both directions while driving straight (e.g., to and from a contact charger). Robots should never approach BIDIRECTIONAL markers from the side, as it's unclear which way they should turn. If you expect more than one robot on a route, have separate outbound and return paths; otherwise, robots may meet head to head, causing both to stop. Use BIDIRECTIONAL markers on branches where only one robot is expected to be present at a time. -An example of a simple marker layout is shown in the figure below. +An example of a simple marker layout is shown below. ### Ignored opposite markers -By default, the GO markers which are rotated in the opposite direction as the robot is driving are ignored. This is so that the outbound path and return paths work correctly when inbound and outbound paths are close together (refer to the next section). Otherwise, if the robot is driving on the inbound path, it might detect and follow the opposing markers from the outbound path. +By default, opposite-facing GO markers are ignored. This ensures that outbound and return paths work correctly when they're close together. ### Circuit route -If you want multiple robots to drive on the same marker setup, you should arrange the markers in a so-called "Circuit route", so that the robots won't collide into each other. This type of marker setup is recommended even if you have only one robot, because you never know when you will add another robot to your fleet. We divide circuit route into an inbound and an outbound path. Inbound serves as the path for robots to drive to the goal and the outbound is the path which is used for the robots to return back to the starting point. The inbound and outbound paths should be at a little more (about 20 cm more) than 1 robot width apart, so that the robots can pass each other without collision. If you have space, its convienient to place the routes 1 meter apart. On both ends of the path, markers should be arranged in a specific way, shown in the image bellow. -When setting up a route, the measurements from the image bellow need to be considered. -If you want to include a STOP marker into the Circuit route, the best way of placing it is one meter behind the GO marker. GO markers must be max 4-5 meters apart regardless of where you put the STOP markers, because the STOP markers are ignored in the case if you don't want the robot to stop on them. -As seen from the image, on each end of the Circuit route, there is a TURN marker, which you need to include into the route on the touchscreen. This can't be a GO marker, because it would be ignored as it is turned in opposite direction as the robot's driving direction. +For multiple robots driving on the same marker setup, arrange the markers in a "circuit route" to prevent collisions. This setup is recommended even for one robot, as you might add more robots later. Circuit routes are divided into inbound (path for robots to drive to the goal) and outbound (path for robots to return to the starting point) paths. Place the paths a little more than 1 robot width apart (about 20 cm more) to avoid collisions. If you have space, place the routes 1 meter apart. Arrange markers at both ends of the path as shown below, and consider the measurements from the image. + +Circuit routes include one "main circular route" that can be seen as "main inbound and outbound paths" or just as a circular route. You can set it up in an inbound-outbound style where the paths are close together, or as a big "looping route" that "ends where it begins" with "inbound and outbound paths" far apart. The style of the "main circular route" depends on your specific use case. + +To include a STOP marker in the circuit route, place it one meter behind the GO marker. GO markers must be a maximum of 4-5 meters apart, regardless of where you put the STOP markers. STOP markers are ignored if you don't want the robot to stop on them. On each end of the circuit route, there is a TURN marker, which you need to include in the route on the touchscreen. A GO marker won't work, as it would be ignored since it faces the opposite direction of the robot's driving direction. -### Branches from main circuit route +### Branches from the main circuit route -You can also do "branches" from the main circular route similarly as shown on the image bellow. +You can also create "branches" from the main circular route, as shown below. -As you can see, there is a possibility that two robots would collide into each other on the marker where the branch merges back into the main route. This is handeled in a way that the robot comming from the branch always "looks" to the left with LIDAR in order to see if there is another robot approaching from the main route. If this is the case, the robot approaching from the branch will stop and wait for the robot on the main route to pass. +There's a possibility that two robots collide where the branch merges back into the main route. To handle this, the robot coming from the branch always "looks" left with LIDAR to see if there is another robot approaching from the main route. If so, the robot approaching from the branch will stop and wait for the robot on the main route to pass. This is the so-called "T-shaped collision avoidance". + +However, this introduces a problem. Robots **always** look left when turning right on a marker to detect a potential robot on the main route. If the robot is just turning right (and not going back to the main route), there should ideally be about two meters of clearance on the left side to avoid detecting a wall or obstacle as an approaching robot. If not possible, disable T-collision detection for each individual marker that makes the robot turn right where you don't want it to stop due to an obstacle on the left. This can be done on the touchscreen's route settings screen by clicking on any marker in the route and checking the "Disable T collision check" checkbox. -But this introduces a problem. The robots **always** look to the left when turning right on a marker in order to detect a potential robot on the main route. This means that if the robot is just turning right (and it is not going back to the main route), ideally there should also be about two meters of clearance on the left side of the robot so that the wall or any other obstacle is not detected as the robot approaching from the main route. So, if the robot is driving in a hallway which is turning right, you should put the inbound path as close to the right wall as needed so that there is still 2 meters of clearance on the left side of the robot. Or, if that's not possible, you should disable t collision detection for each individual marker, that makes the robot turn right, on which you don't want the robot to stop because of the obstacle on the left. This can be done on the touchscreen's route settings screen. By clicking on any marker in the route, a popup will open where you can check the "Disable T collision check" checkbox. -Bear in mind that to rejoin the main route at the point where the main route makes a 90 degree turn will create problems with this collision avoidance. Please rejoin the main route a few cm earlier than where the main route takes a 90 degree turn. +Keep in mind that rejoining the main route at a point where the main route makes a 90-degree turn creates problems with collision avoidance. Rejoin the main route a few decimeters earlier than where the main route takes a 90-degree turn (by placing a marker there and pointing the last marker on the branch towards it). ### Narrow hallway limitations -There are some minimum distances from the route to walls which are presented on the image bellow. +Minimum distances from the route to walls are presented below. @@ -67,42 +68,69 @@ There are some minimum distances from the route to walls which are presented on ## Touchscreen UI -In this section we will present the web application made for the 7'' touchscreen monitor. Its main functionality is to manage routes for ConveyorBot. On the top of all screens, there is a menu bar, which offers functionalities like rebooting the robot, monitoring battery percentage, navigating to “Control panel screen”, etc. On the top right corner of the “Control panel screen”, there is a map icon which leads to “Route settings screen”. On that screen, the routes can be set up. +In this section, we will present the web application designed for the 7'' touchscreen monitor. Its primary function is to manage routes for the ConveyorBot. A menu bar is present at the top of all screens, offering functionalities such as rebooting the robot, monitoring battery percentage, navigating to the "Control Panel screen," and more. The map icon on the top right corner of the "Control Panel screen" leads to the "Route Settings screen," where routes can be set up. ### Control panel screen -The most noticeable part of the “Control panel screen” is the big green “Start/Stop button”, with “START” written on it. After pressing it, it changes its color to red and its text to “STOP”. It is used for the robot to start or stop following the markers of the currently selected route. When the robot finishes the route by stopping on a STOP marker, this button changes its color to blue and its text to “CONTINUE”. Now, when pressing this button, the robot will start following the route again from its beginning. -The route can be easily selected in the dropdown menu, which is located below the “Start/Stop button”. To edit, create or delete a route, the gear icon in the top right corner can be pressed, which leads to the “Settings screen”. If you want to reset the route (to start the route from the beginning), you should select another route and then the desired route again (currently there is no "reset route" button). -The Control panel screen with route "turn test" selected is shown on the image below. + +The most noticeable part of the "Control Panel screen" is the large green "Start/Stop button" labeled "START." Pressing it changes its color to red and its text to "STOP." This button allows the robot to start or stop following the markers of the currently selected route. When the robot completes the route by stopping on a STOP marker, the button changes its color to blue and its text to "CONTINUE." Pressing the button now will make the robot start following the route again from the beginning. + +The route can be easily selected in the dropdown menu located below the "Start/Stop button." To edit, create, or delete a route, press the gear icon in the top right corner to go to the "Settings screen." To reset the route (to start the route from the beginning), select another route and then the desired route again (there is currently no "reset route" button). + +The Control Panel screen with route "turn test" selected is shown in the image below.

### Menu bar -The menu bar is present on the top of all screens. On its left side, there is a Ubiquity Robotics’ logo, which is actually a button that always leads to the “Control panel screen”. On the right side of the menu bar, there is a battery level indicator. When the battery goes under 40%, a low battery popup will be shown. When this happens, you should stop using the robot and start charging it. In the middle, there are several buttons, each having its own functionality. The first one (from left to right), shaped as a computer monitor, leads to the “Debug screen”, on which the user can monitor the camera’s image stream and detected markers or move the robot with the software joystick. The second button, shaped as a letter “R” in a circular arrow, prompts the user to reboot the robot. The third button, shaped as the letter “S” in a circular arrow, prompts the user to reboot the robot’s software. This is useful, because it functions in a similar way as rebooting the robot, but is faster than it. The fourth button, shaped as an on/off symbol, prompts the user to turn off the robot. The fifth button, shaped as a sprocket, leads the user to the "Debug settings" screen. On this screen there are additional settings for updating and recording ROS’ topics into a “bag file”. This is used for debugging purposes. The sixth button is a WiFi state indicator. If the robot is connected to the WiFi, this button has a regular WiFi icon shape, indicating the WiFi strength. If the WiFi is disconnected, it has the same shape, but with a cross symbol drawn over it. If the WiFi is in the hotspot mode, it has a shape of two regular WiFi icons rotated by 90° to left and right. Pressing on this icon displays the WiFi info, which is the IP address, SSID and the hostname. Here you can also connect to a new WiFi access point by entering the SSID and password into appropriate fields and clicking on "Connect to the new WiFi" button. + +The menu bar is present at the top of all screens. On its left side, there is a Ubiquity Robotics logo, which serves as a button that always leads to the "Control Panel screen." On the right side of the menu bar is a battery level indicator. When the battery falls below 40%, a low battery popup will appear. In this case, you should **stop using the robot and start charging it**. In the middle, there are several buttons, each with its own functionality. + +They are the following (from left to right): + +1. A computer monitor button that leads to the "Debug screen" where users can monitor the camera's image stream and detected markers or move the robot with the software joystick. + +2. An "R" in a circular arrow button that prompts the user to reboot the robot. + +3. An "S" in a circular arrow button that prompts the user to reboot the robot's software. This is useful because it functions similarly to rebooting the robot but is faster. + +4. An on/off symbol button that prompts the user to turn off the robot. + +5. A sprocket button that leads the user to the "Debug Settings" screen. This screen contains additional settings for updating and recording ROS topics into a "bag file" used for debugging purposes. + +6. A WiFi state indicator button that displays the WiFi status. If the robot is connected to the WiFi, the button shows a regular WiFi icon shape, indicating the WiFi strength. If the WiFi is disconnected, it shows the same shape but with a cross symbol drawn over it. If the WiFi is in hotspot mode, it has the shape of two regular WiFi icons rotated 90° to the left and right. Pressing this icon displays the WiFi info, including the IP address, SSID, and hostname. Here, you can also connect to a new WiFi access point by entering the SSID and password into the appropriate fields and clicking the "Connect to the new WiFi" button. ### Route settings screen -On the left side of this screen, there is a route selection part. To add a new route, the “+” shaped button below all routes can be pressed. When clicking on any of the routes displayed here, the route editor will be displayed on the right side of the screen, where you can edit the selected route. -The route editor has two columns. In the left one, the markers to follow can be specified and on the right part, the markers to ignore can be specified. The specified markers can also be rearranged by dragging and dropping them. The drag and drop functionality can be disabled, so that the list of markers can be scrolled up and down, without accidentally rearranging the markers. This can be done by clicking on the “lock/unlock” button above the left column. The function of “markers to follow” and “markers to ignore” and instructions on how to correctly set up a route will be described in the next section. -To delete the route, which is currently being edited, click on the button with the bin icon on the bottom of the screen. -The settings screen is shown on the image below. -
+On the left side of this screen is a route selection section. To add a new route, press the "+" shaped button below all routes. When clicking on any of the displayed routes, the route editor will be displayed on the right side of the screen, where you can edit the selected route. + +The route editor has two columns. In the left column, you can specify the markers to follow, and in the right column, you can specify the markers to ignore. You can also rearrange the specified markers by dragging and dropping them. To prevent accidentally rearranging the markers while scrolling up and down the list, you can disable the drag and drop functionality by clicking the "lock/unlock" button above the left column. The function of "markers to follow" and "markers to ignore" and instructions on how to correctly set up a route will be described in the next section. + +To delete the currently edited route, click the button with the bin icon at the bottom of the screen. + +The Route Settings screen is shown in the image below.
+
+ ### Route management -The route management functionality allows ConveyorBot robot to navigate itself in a more advanced manner. If you press the route settings button on the Control Panel screen, you'll see the main route management page. This was described already in the previous section of this page. -Now we will tell you how to properly set up a route. An analogy for how the route setup works is the way somebody navigates you while driving a car. The navigator only tells you where you have to turn in the crossroads - he doesn’t tell you that you have to go straight on a road which is itself straight (and has no other ways to turn), or to stop where there is already a stop sign. So, to set up a route on which the robot will drive, you have to specify only the sequence of TURN markers in the crossroads of the route. Actually, all other TURN markers (the ones which are not specified in the route plan) are ignored by default. You don’t have to specify GO, STOP or BIDIR markers (but you have to do this in a special case, specified later in this section). -To specify the order of turns in crossroads, put the numbers of TURN markers, which mark the appropriate turns, into the left column of the route editor in the correct order. -In the left column of route editor, you also need to specify all STOP markers on which you want the robot to stop. If you don't do that, the robot will ignore STOP markers by default. -If you want to completely ignore a marker, put it into the right (“Don’t follow”) column. An example of where this could be useful is if there is another marker setup, independent from the current marker setup close by. In that case you need to put the markers from the other setup you wish to ignore into the right column. -When creating the route, you have to be careful that the first marker is close enough for the robot to detect it, otherwise the robot won't start. You can see if the first marker is detected in the Debug screen. It should have a green outline on the camera image. -A special case, where you have to specify GO, STOP and BIDIR markers in the route is, if there are two markers from the same crossroads in the route one after another. This would happen, for example, when the route goes from a crossroad to the STOP marker, which is directed back to the same crossroad. In this case, this STOP marker also has to be specified in the marker list. In general, at least one marker on a part of the route which goes out of the crossroad and then back to the same crossroad has to be specified. This is a current issue and it will be resolved in further updates. -Note that after changing the route in any way, it will be resent to the robot automatically and started from beginning, so you should move the robot to the start of the route after doing that. - -### Remainder route -(Be aware that this is an experimental feature and might not work as expected in all cases. It will also probably be removed in the future.) -When performing an action which would override an unfinished route, a remainder of that route is saved as a route with name “\”. This is useful, because if the user accidentally selects a different route or exits the software, he/she won’t have to manually drive the robot to the end/start of the route, but the robot will just continue where it left by selecting the “\” route. -Depending on where the robot was interrupted, the remainder might be one marker too long - the first marker of the remainder route might not be visible by the robot anymore. In that case, the user should delete the first marker by manually editing the remainder route. + +Route management functionality enables the ConveyorBot robot to navigate in a more advanced way. As previously mentioned, the main route management page can be accessed by pressing the route settings button on the Control Panel screen. + +##### Properly setting up a route + +Think of the route setup process as having a navigator while driving a car. The navigator only tells you where to turn at crossroads but doesn't instruct you to continue straight on a straight road or to stop where there's already a stop sign. To set up a route for the robot, you need to specify only the sequence of TURN markers at the crossroads of the route. By default, all other TURN markers not specified in the route plan are ignored. You also have to specify STOP markers on which you want the robot to stop. You don't have to specify GO or BIDIR markers, except in specific cases discussed later in this section. + +To specify the order of turns at crossroads, add the numbers of TURN markers indicating the appropriate turns to the left column of the route editor in the correct order. In the left column of the route editor, you must also specify all STOP markers where you want the robot to stop. If you don't do this, the robot will ignore STOP markers by default. + +To completely ignore a marker, add it to the right ("Don't follow") column. This might be useful, for example, if there is another independent marker setup nearby, and you want to ignore markers from the other setup. + +##### Notes to keep in mind + +When creating a route, ensure that the first marker is close enough for the robot to detect; otherwise, the robot won't start. You can check if the first marker is detected in the Debug screen; it should have a green outline on the camera image. + +A special case where you must specify GO, STOP, and BIDIR markers in the route is when two markers from the same crossroad are in the route one after another. This can happen if the route goes from a crossroad to a STOP marker directed back to the same crossroad. In this case, you must specify this STOP marker in the marker list. In general, you must specify at least one marker on a route segment that goes out of a crossroad and then returns to the same crossroad. This is a current issue that will be addressed in future updates. + +Please note that after making any changes to the route, it will automatically be resent to the robot and started from the beginning. Therefore, you should move the robot to the start of the route after making changes. \ No newline at end of file diff --git a/noetic/conveyorbot/usage.md b/noetic/conveyorbot/usage.md index 48b40e6..f1cdc58 100644 --- a/noetic/conveyorbot/usage.md +++ b/noetic/conveyorbot/usage.md @@ -9,14 +9,29 @@ nav_exclude: false # Basic Usage -Before using conveyorbot, it is necessary to [set up routes](noetic_conveyorbot_setup). +Before operating Conveyorbot, you need to [set up routes](noetic_conveyorbot_setup). If routes are already established and you want to run the robot on a specific route, this page contains the necessary information. It's also recommended that you read this page before setting up routes to understand the robot's basic operation. -Initially when robot boots up, the touchscreen display should show a **Loading** screen. After the system is ready you should be able to see a screen with a **START** button. +## Turning Conveyorbot On and Off + +On the robot's shell, slightly above its right wheel, you'll find a black power switch and a red emergency stop button. To start the robot, turn the power switch to the "on" position and wait for the boot process to finish. To shut down the robot, press the Power off button on the robot's touchscreen navigation bar and wait for the shutdown process to complete. After that, you can switch the power switch to the "off" position. In case of an emergency, press the emergency stop button to halt the robot (this won't turn off the robot). To resume movement, rotate the emergency stop button slightly to release it. + +**Be aware that the robot may not move if the emergency stop button is pressed accidentally. If this happens, release the button.** + +## Starting the robot + +When the robot boots up, the touchscreen display shows a **Loading screen**. Once the system is ready, a screen with a **START** button and a drop-down list for route selection will appear. -From initial pose, it will wait for the user to press START and the move to towards the detected marker. -It is important that the robot sees the first marker, otherwise it will not move and pop-up a warning on the screen. +First, select a route, and the Conveyorbot will wait for you to press the START button. This will initiate movement on the chosen route. + +It's important that the robot initially detects a marker that's part of the selected route; otherwise, it won't move, and a warning will appear on the screen. To ensure the robot sees a specific marker, open the **Joystick control screen** with the monitor-shaped button in the navigation bar. On this screen, you'll see the robot's current view, with detected markers outlined in green. If the starting marker isn't in the camera's field of view, use the joystick on the right side of the screen to move the robot until the marker is visible. + +When starting from a green "GO" marker, the robot must be facing the same direction as the marker (oppositely directed GO markers are ignored by default). The robot should be on the other side of the GO marker (the side without the arrow) and facing toward the marker (with the marker in the camera's field of view). + +If starting from a purple "BIDIRECTIONAL" marker, note that the robot will begin moving in one of the two directions indicated by the marker's arrows - the direction requiring less robot rotation. [Here](noetic_conveyorbot_fiducials) is more information about each type of marker. + +## Navigation and stopping