Monday, March 16, 2020

How to run a shell script from a ROS launch file

I wanted to execute a bash shell script from the ROS launch file but the ROS Wiki were not very clear. After some trial and error, I figured out how to do it. The following steps illustrate the procedure I used:

Create a shell script
  1. In the ROS workspace package, e.g. /path/to/workspace/package/script/ folder, create a shell script e.g. run_script.sh.
  2. Type in the script commands, e.g. see the code listing below.

    Note 1: ensure the shebang statement is at the top i.e. #!/bin/bash and a exit status code (0 for success or other values) is returned from the script.

    Note 2: Use the chmod command to make the script executable, e.g. $ chmod a+x run_script.sh

#!/bin/bash

# just print this out
echo "Hello ROS world"

# exit gracefully by returning a status 
exit 0


Create a launch file
  1. In the ROS workspace package launch folder, create a launch file e.g. /path/to/workspace/package/launch/hello_script.launch.
  2. Using a text editor, type in the following:

    Note: fill in the package name, e.g. beginner_tutorials, and the type, which should be the shell script name; name is any label you want to associate with the script node.


<launch>
        <node pkg="beginner_tutorials"
                type="run_script.sh" name="run_script"
                output="screen"
        />
</launch>

Run the launch file
  1. In a terminal, type in the ros launch command:

    $ roslaunch beginner_tutorials hello_script.launch

    Note: change beginner_tutorials to your package name and hello_script.launch to the launch file created previously.

    The script is executed as shown in the print out of "Hello ROS world" below.

Monday, March 9, 2020

Using Saga GIS' Terrain Analysis Swath Profile (interactive) function

Saga GIS has a couple of interactive terrain profiling functions, a single profile and a swath profile. This post shows how to use the interactive swath terrain profile command.

Load a grid file such as a USGS SRTM file
  1. Run Saga GIS. Select Geoprocessing | File | Grid | Import | Import USGS SRTM Grid.

    The Import USGS SRTM Grid dialog box appears.
  2. Click the Browse button in the Files field. Choose an SRTM file e.g. N21E093.hgt.

  3. Click Open.

  4. Click Okay.

    The SRTM file is loaded and shown in the Data tab.
Start the swath profile command
  1.  Under the Data tab, mouse right click on the loaded grid file e.g. N21E093.
  2. In the pop up context menu, choose Add to Map.

    The grid file is displayed in a map window.
  3. Select Geoprocessing | Terrain Analysis | Profiles | Swath Profle [Interactive].

    The Swath Profile dialog box appears.
  4. In the Grid system field, choose the loaded grid file's system e.g. 0.000833; 1201x 1201y; 93x 21y option.
  5. In the DEM field, choose the loaded grid file, e.g. N21E093.
  6. Optional. Change the Swath Width if necessary.

    The message Interactive tool execution has been started is displayed in the Messages pane.
Digitize the swath profile
  1. In the Toolbar, click the Action icon (that looks like a black NW arrow).
  2. In the map window, click a few points to draw the swath profile.


  3. To complete the drawing, press the mouse right button.
  4. To exit the interactive command, select Geoprocessing | Swath Profle [Interactive].

    The Tool Execution prompt appears.
  5. Click Yes.

    The message: "Interactive tool execution has been stopped" is shown in the Messages pane.

    Note: This may take a while as the command will sample the terrain to calculate the points.
Display the swath profile graphically
  1.  In the Data pane, mouse right click on the newly created profile points e.g. Profile [N21E093].

  2. In the pop up menu, choose Attributes | Diagram.

    The Properties dialog box appear.
  3. In the X Axis Values field, choose D (for Distance).
  4. In the X Axis Label field, choose D.
  5. In the Attributes field, toggle on Z, Z [min], Z[max].
  6. Set other options if necessary.
  7. Click Okay.

    The profile line(s) are displayed.

Monday, March 2, 2020

git authentication failed after changing password or installing a new version of git for Windows

After installing a new version of git for Windows or changing the git repository password, the following git error messages may appear when trying to access the git repository: "...access denied...fatal authentication failed for ..."
 
This problem can be resolved by resetting the git password in the Windows Credential Manager.

  1. Click the Windows Start button.
  2. Start typing in "Credential Manager". When the Credential Manager icon is displayed, click the icon.

    The Credential Manager dialog box appears.

  3. Click the Windows Credentials icon.
  4. Scroll down the credential list and look for a git generic credential, e.g. git:https://gitlab.com. Click on the credential.

    The git credential properties appear.

  5. Click Remove.



    The git credential is removed.
  6. Close the Credential Manager.

Now, running any git command to access the repository will cause Windows to pop up a dialog box to enter the login and pasword, as shown below.
Entering the correct login and password will allow the git command to be executed successfully.