高知県土佐市の笑えないなんちゃって行政 2025 #2
土佐市の行政の本当の行いを綴る!!
土佐市の一職員の規範意識のなさは、決して今に始まったことではない。連綿と受け継がれる黒歴史
高知県土佐市の笑えないなんちゃって行政 2025 の続きぞね!!
7. 2025.12.5(金) 12:40 晴れ
今年も、はや師走ぞね。はやいものじゃ
さて、今月になって、また、土佐市の防災行政無線から、連日放送が流されだした。
それも、災害とは関係のない、市の広報ばかり。
本当に迷惑じゃ。
2/3(水) 17:40 健康福祉課 献血実施の知らせ
12/3(水) 17:45 水道局 今週、水道凍結への注意喚起
12/4(木) 12:40 障害学習課 つなーで での講演会開催の知らせ
12/5(金) 12:40 総務課 年末、年始の交通安全運動の知らせ
市民の迷惑を考えないものか?
仕方がないので、また、苦情のメールフォームを書きこんだ。
Spring boot で、 Shopping cart プログラムを試してみた。
インターネットで検索したら、
E-commerce-project-springBoot
があったので試してみたが、これが、つかいものにならんしろものだった。
Shopping cart と言っているくせに、カートに入れる処理から以降がまるっきり入っていない粗悪品じゃった。
おまけに、html の部分は、jsp で、Thymeleaf テンプレートすら使っていない。
Hibernate を使っているが、バージョンが古くて、修正するのにばかな苦労をするはめになる。
仕方がないので、Perl で作った実際に運用している自分のショッピングモールのカート部分を、インポートしてつくるはめにった。
こちらは、JdbcTemplate + SQLite3 で作ってみました。
しかし、最近は、google ai や ChatGPT を使えば、判らない java のコードをすぐ教えてくれる。
本当に便利になったもんじゃ。
ずっと以前に、Java のプログラムを書いていた頃では、すべて自分でネットを検索したり、
本で調べたりして、なかなか目的のコードを作るのに時間がかかった。いまは、本当に短時間で、やりたいコードが出来上がる。
Spring Boot で、掲示板のサンプルを試す。
プログラム上達の早道は、他人のプログラムを手本に勉強することじゃ。
掲示板のサンプルがあったので、試してみた。
ありがとう!!
Spring bootサンプルアプリケーション: 掲示板
github は、下記だった。
Spring boot example application: notice board
VSCode のworkspace で、早速、git clone する。
$ git clone https://github.com/saladlam/spring-noticeboard.git
$ cd spring-noticeboard
pom.xml を修正したほうがよさそう。
注) maven-surefire-plugin の箇所は、変更したほうがよい。
./mvnw build のテストでえらになる。
Spring Boot で、JDBC sqlite3を使う。
前回の、Java で SQLite3 を使う。 で、SQLite3 がつかえたので、
今回は、本題の、Spring Boot で、SQLite3 を試してみる。
Spring JDBC JdbcTemplate で SQL 発行 を参考に、作ってみました。
このサンプルの中で、JdbcTemplate を使って、 JDBC で Database にアクセスしています。
どうやら、H2 Database みたい。これは、このままで動くのか?
JdbcTemplate を、SQLite3 に変更できれば、目的を達成できる。
google で、下記を検索したら、
"JdbcTemplate を sqlite3 で使うには"
google 様のお告げがありました。今回はそれに従って作ってみました。
開発環境:
Ubuntu Mate 24.04
VSCode
1. プロジェクトを作成する。
プロジェクト名: spring_sql
コマンドパレット > Spring Initializer: Create Maven Project...
Spring Boot Version: 3.5.7
: Java
Group ID: com.example
Artifact.id : spring_sql
Package name : com.example.spring_sql
: jar
: 21
依存: JDBC API、H2 Database
Java で SQLite3 を使う。
最終的には、Spring boot で、SQLite3 を使うのが目的だが、そのために、まず SQLite3 の使い方を学習します。
Spring boot で、JDBC を使ったガイドがあるが、
Spring JDBC JdbcTemplate で SQL 発行
この中で、JdbcTemplate を使っているが、これは、 MySQL がディフォルトだが、ここを
SQLite3 に変更することができるみたいじゃ。
google 様にお問い合わせしたら、
"JdbcTemplate を sqlite3 で使うには"
で、できるとお告げがあった。
なので、先に、java から SQLite3 でのアクセスを試す。
開発環境
Ubuntu Mate 24.04
今回は、下記ページを参考にさせて頂いた。ありがとう。
1) 【JDBC ①】JavaからSQLite3のデータベースにアクセスしてみた
2) SQLite JDBC Driver
Spring Boot で、簡単にJavascript 非同期通信ができる!
Spring Boot で、Javascript 非同期通信 のサンプルがあったので試してみた!!
一応動いたが、少し修正しないと動かなかったので、掲載してみた。
オリジナルは、
Java(Spring)で作るはじめてのAPI
ありがとう!
開発環境:
Ubuntu Mate 24.04
VSCode
openjdk-21-jdk-headless
openjdk-21-jdk
openjdk-21-jre-headless
openjdk-21-jre
プロジェクト名: spring_api
Gradle project
java version:21
Spring Web, Spring Boot DevTools, Thymeleaf
1. HelloController.java を作る。
spring_api/src/main/java/com/example/spring_api/HelloController.java
Java の フレームワークに、 Spring boot と言うものがあるらしい。
おんちゃんも久しぶりに、Java を使ってみて、世の中のJavaの開発環境の変化にまるっきり驚いちょります。
浦島太郎が、地元に帰ってきた時の心境に近いものがあります。
本題の、Spring boot だが、公式サイトのドキュメントにわかりやすい説明があるぞね!!
spring ドキュメント
サンプルは、Eclipse を使っているようなので、
おんちゃんは、Ubuntu 24.04 に eclipse jee 版をインストールして試してみました。
Vscode でも、Extension Pack for Java と Spring Boot Extension pack を入れいれば同じ様に使えるぞね。
どちらを使うかは、好みで決めとうせ!!
Java Version は、Ubuntu 24.04 だと、21 なので、サンプルの 17 は、21 に置き換えること。
どうなっている、高市政権の農林水産省の米増産の撤回!!
MSN の記事を見ていたら、コメ価格維持へ増産撤回 26年産711万トンに
の記事が舞い込んできた。
とんでもないことだ、これでは、今も 5kg 4,000 円以上 していて、一向に下がる気配がない。
早く、3,000円台で手に入るようにならないか、待ち焦がれている、おんちゃんはどうすればよいのか。
低所得のおんちゃんは本当に生活が苦しいが、高市政権は判らないみたいだ!!
新しい鈴木農相は、今の米価格が高いか安いかも明言を逃げて、米価格は市場が決めるものだとばかなことを言っている。
まるきり価格を下げる考えもないみたいだ!!
いまの米価格が高いのは、子供でもわかる。
ROS2 Turtlebot3 Gazebo で cartographer の SLAM を試してみた。
AMCL with Scan での SLAM and Localization より広域の場所に対応するもので、Cartographer と言うのがあるそうぞね。
おんちゃんも恥ずかしながら、最近知りました。
サンプルをネットで探してみたが、一から書かないといかんみたいで、めんどうだたので、以前 Turtlebot3 の中に
cartgrapher があったので思い出して、早速、探してみた。
Turtlebot3 cartgrapher の例が下記にあったので、試してみた。
turtlebot3/slam/
こちらは、実機 Turtlebot3 だったが、Gazebo でも動くだろうと思って試してみました。
Turtlebot3 Gazebo は、こちら。
@ROBOTIS-GIT/turtlebot3_simulations/
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#16 ソーラ発電所の草刈りロボット案
------ 草刈りロボットへの 3D Map の利用について ----
ROS2 Tugbot Gazebo で 3D LiDAR の SLAM を試してみた。 で、@fishros/LeGO-LOAM-ROS2 を、
Tugbot Gazebo で試してみて、出てくる 3D Map(ただし、現状 3D Map として保存する方は、判らない) が素晴らしい。
これを、Localization として使うのではなく、周囲把握に使えれば面白い気がしてきた。
1. おんちゃんの想定する、ソーラ発電所の草刈りロボットに於ける3D Map の利用。
1) ソーラー発電所で、草が生えていない時に、Rtabamap_ros、LeGO-LOAM-ROS2 等を使って、2D Map と、3D Map を作成する。
3D Map は、草の生え具合の標準データとする。
2) 草刈りのときは、2D Map や GNSS-RTK を使った、Localization を利用する。
3) ロボットは草刈りコースに則って移動する。
この時、走行コースが、草でふさがっている時、そこの場所の 3D Map と草の生え具合の標準データとを比較して、
本来であれば草がない所であれば、その草を避けずに草を刈る。
注) 2D Map でも予め作ったものなら、同じように使えそう。
敢えて、3D Map を使う価値はあまり無いのかも!!
4) また、走行コースは、おおまかなコースとして、ロボットの周囲の 3D Map が、草の生え具合の標準データと比較して、
草が生えている場合は、その周囲の草刈りを行う。
5) ケーブル、支柱などの障害物は、Object Detection で、判定して避ける。
ROS2 Tugbot Gazebo で 3D LiDAR の SLAM を試してみた。
ROS2 Gazebo for Tugbot が使えるようになったので、本題の 3D LiDAR の SLAMのサンプルを試してみた。
3D LiDAR の SLAMのサンプルは、
@fishros/LeGO-LOAM-ROS2
開発環境
PC: Ubuntu Mate 24.04
ROS2 Jazzy
Gazebo Hramonic
1. ビルド。
$ cd ~/colcon_ws-jazzy/src
$ git clone https://github.com/fishros/LeGO-LOAM-ROS2.git
$ cd ..
$ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select lego_loam_sr
$ . install/setup.bash
2.Run。
# term1
$ sudo ufw disable
$ ros2 launch tugbot_gazebo_my warehouse.launch.py
# term2
$ ros2 launch lego_loam_sr run.launch.py
で、問題なければ、動くはず。
ただし、手直ししないと動かなかったので、メモして置きました。
ROS2 Gazebo for Tugbot を作ってみた。
3D LiDAR の SLAM サンプルの、
@fishros/LeGO-LOAM-ROS2
Gazebo で試せないかと思ったので、作って見ました。
一応出来たのだが、3D LiDAR の PointClouds2が、Rviz2 でうまく確認できない。--> 一応対応した。
作るにあたっては、下記の2サイトを参考にさせてもらったぞね。ありがとう!!
@ROBOTIS-GIT/turtlebot3_simulations
@/porizou/tugbot_ros2_pkgs
turtlebot3_simulations/turtlebot3_gazebo が、Gazebo 利用の FrameWork みたになっているので、これのファイル構成を流用させてもらいました。
tugbot_ros2_pkgs は、urdf sdf を参考にさせて貰いました。
開発環境
PC: Ubuntu Mate 24.04
ROS2 Jazzy
Gazebo Hramonic
github に公開しました。
@tosa-no-onchan/tugbot_my
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#15 Robot Localization
---- 機械学習 Object Detection を使った Robot Localization 案 ----
なんとなく PC のブラウザーを見て暇を潰していたら、浮かんできたので、書いてみた。
ロボット Localization に、ロボットに取り付けた RGB カメラの前方画像を 使ってランドマークになる物を検出する
Object Detection をつかてみてはどうか?
検出する Object は、ランドマークになるものだけにする。
道路、家、塔、川、アンテナ、窓、ドア、橋、欄干...
家は、平屋、2階屋、ビルなどに分類する。
おんちゃんの結論は、Object Detection では、ロボットの正確な位置を算出する Robot Localization には、現状不向きか、
やはり、障害物の判定とそれからの退避利用が合っている。
1. 案 I
検出されたObject部分の画像だけを使って、それ以外の部分は、消去する。
ランドマークのみが抽出された画像を、rtabmap_ros に通す。
2. 案 II
SLAM の時は、rtabmap_ros で Mapping しながら、自分でも Localization 情報を構築する。
Navigation モードの時は、自分で Localization した情報を使う。
処理概要は、検出されたランドマークの class id と向きか、depth camera の画像も使って距離情報と、ロボットの位置、向き情報を保存する。
注1) 検出されたランドマークは、ロボットの位置、向きから、Map上の位置に変換して、単純に、保存するだけ。Map(x0,y0)にプロットするイメージ。
実際は、Roboto の 現在の位置(Map)とランドマークの位置(Map) を加えて、SQLite 等で情報として蓄積するか。
注2) Map上の位置に変換するには、距離が必要になる。距離が測定できる範囲のランドマークに限られる。
注3) ランドマークも見る向きによって、形状が変わるので難しいかも知れない。
家であれば、距離は、ロボットの方に向いている壁や屋根までの距離となる。ロボットの位置で、同じランドマークでも形状が異なる。
注4) Map 上の情報も、実際参照されるのは、ロボットの現在位置と向きによってカメラの画角に入る周辺の情報に限定される。
注5)
a. Navigationモード(非SLAM モード) の時は、もしかしたら、その時の各ランドマークとロボットを頂点とする多角形の形状のマッチングになるのかも知れない。
あるいは、多角形の領域の重なり具合を求めるのかも知れない。
しかし、ランドマークが多いと、多角形化が困難になるので、これは、無理か?
SLAM モードの時は、頻繁に ロボットを 360度回転させて、周囲の情報を収集する必要がある。
b. やはり、距離情報を必要としない、Object Detction によるランドマークのマッチングが出来ないものか?
この点だが、単純にObject Detction でランドマークを計測した時毎に、その時のロボットの位置と向き及び、
見つかったランドマークの Class id と RGB 画面上のboxの情報を SQLite で保存するのはどうだろうか?
これなら、マッチング処理の時、ロボットの位置 Map(Xc,Yc,Zc) が、近いレコードを SQL で 抽出して使える気がする?
これを、Map近辺レコード と呼ぶことにする。
Map近辺レコード が select できれば、後は、
『SLAM入門 ロボットの自己位置推定と地図構築の技術 友納正裕(著)』(オーム社)
でも参考に自己位置の補正ができそうじゃ。
注) ただこちらは、基本 2Dのレーザースキャンを使った入門書じゃ。
スキャンマッチング、センサ融合による退化への対処、ループ閉じ込み の3つが主要処理として出ている。
ランドマークとの距離が必須だが、初心者のおんちゃんには、大いに勉強にはなる。
3D LiDar and 3D SLAM は、LOAM があるらしい。
後は、『インターフェイス 2020 3』第3部 自律走行ロボ制御プログラミング実験室 あたりが参考になるか?
以前ぱっと読んで、 あまり理解せずにしていた。もう一度読んでみようと思う。
もし、Depth Camera で、距離が測定できるランドマークであれば、同時に Map 上の位置を計算していっしょに、SQLite で保存しておけば良いかも知れない。
注6) ロボットの位置と向きの参照情報についての整理。
ROS2 においてロボットの位置は、TF システムによって管理される。
ロボットの現在位置と向きは、下記関連で示される、
tf-map -> tf-odom -> tf-basefoot_print
tf-odom -> tf-basefoot_print は通常、ロボットのMoter の単位時間内の直進値や向きの回転値を積分した値で示される。当然、タイアの回転なので誤差が蓄積されていく。
ただし、ロボットの向きは、IMUのBNO086 の 6軸、9軸 DMP のQuatnion を使えば誤差は少ない。
上記誤差を補正するために、正しい tf-map-> tf-basefoot_print をタイア以外の情報も参考に求めて、
tf-map-> tf-odom を補正するのが、localization の目的ぞね。
注7) ロボットの走行と Map について。
ROS2 で、ロボットを走行をさせるには、予め作成した Static Map が必要ぞね。
通常 SLAM で、Static Map を作成するタスクを先に実施する。
Static Map が作成されたら、それをもとに ロボットを走行させることになる。
なので、Localization は、普通は両方で必要になるが、....
とほほの Android 操作。
ほとんど、スマホを使わない Android 素人のおんちゃんが最近困った事。
初めて、Google Play で、無料アプリでもダンロードしようと思って、
Google Play をタップして起動させたら、
パスワードの入力画面が出てきた。
ずっと、以前 Google Play を起動して、Google アカウントの設定等が必要だったりして、
めんどくさいから、その時は、途中でやめてしまった過去がある。
それから、随分経っての今回のトラブル勃発じゃ。
以前、アカウント、パスワードなんぞ設定した覚えがない。なのに今回は、パスワードを入力しないと、その先に進めない。
これは、どう言うことじゃ。
google様で Google Play のアカウント、パスワードの変更を検索して、
出てきた情報をいくつか試してみたが、
一向、パスワードがわからない。
なん日か、日を改めて、何回も何回、試してみたが、一向ログインできない。
Google Play を諦めて、別の アプリダウンロードサイトを使おうかと考えていたが、
そのとき、ふとひらめいた、
もしかしたら、 Android に入るときのパスワードかも知れないと思って、
Android のログインパスワードを、Google Play のログインで入れたら、すんなり入れた。
やれやれじゃ!!
Google Play の、ここでのパスワード入力は、本当に必要があるのか?
それに、なんのパスワードかの説明も何もない!!
そもそも、このパスワードは、Android のログイン時に、すでに応答しているではないか?
まるで、プログラマー1年生が書いたプログラムのような気がする。
ESP-EYE マイク を bluetooth で、PC につなげて聞きたい。
最終的には、esp-idf の サンプルを流用した、 "5.3 esp-idf サンプルの hfp_hf が使えるみたい。" でなんとかさまになったが、
以下は、それまでの苦労の物語じゃ。
マイクロフォンを、Bluetooth で通信するには、HS(Head Set) profile を使うみたい。
HFP(Hands-Free Profile) などでもできるみたいだが、HS がシンプルなので、こちらを使うことにした。
最初、A2DP Source でもできそうなので、試していたが、結局うまく行かなかった。
esp32 で、hsp-hr を検索したら、
@atomic14/esp32-hsp-hf が出てきたので、早速試してみた。
それと同時に、Ubuntu Mate 24.04 上で、VScode で、ESP-IDF拡張機能 が使えるそうなので、それの勉強を兼ねて試してみた。
また、 esp-idf v5.5 が最新なので、こちらも使うことにした。
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#14 屋外走行ロボット。
副題: ROS2 C++ 自立走行ロボットによる草刈りロボット開発
--- そろそろ、屋外で走行させられる自作ロボットがほしい。-----
自作ロボットの ROS2 草刈りロボット で屋外を想定した走行と、
Quectel LG290P は、みちびき L6 受信ができるのか。#2 で、GNSS を使った屋外での走行の確認がほぼできた。
これからは、実際に屋外用ロボットを使って、屋外での自立走行を行って、草刈りロボットの実用化に向けた開発をしたいぞね!!
一応、ロボットの要件定義をしてみた。
RCカー 1/10 か 1/12 相当のサイズで、タイヤを大きなものにする。
電子部品は、クローズされた箱に収める。
サイズは、30 X 30 [cm] で、図面を手書きしてみた。
これだと、机の PC の隣に置ける。
あとは、これに従って、DCモーター、タイア、アンプ、ロボット本体のケース 等を集めるだけじゃ。
だが、肝心の Mony が足りない?.....
神様、どうか恵みのマニーを...
今までのおんちゃんの ROS2 自立走行ロボット技術を活かしたスポット開発の依頼がありましたら、是非、ご連絡ください。
自立走行ロボットの屋内走行であれば、十分対応できると思います。
Android スマホを、インターネットのGateWay にする。
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#13 robot_localization ukf を試してみる の続きです。
屋外で、GNSS-RTK をするには、インターネットに接続する必要があるが、そのときに、Android スマホ をインーネットのGateWay できればかんたんじゃ。
早速 google で、"Android を gateway にできるのか" で検索してみた。
結果は、
デザリング、他できるそうだ。
再度 google で "android スマホ テザリングのやり方" を検索する。
ふむふむ!
最終的になにがしたいのかと言うと、以前も下記ページで試したが、
自作 Turtlebot3 自律走行に向けたプログラム。#15
要は、自作Trutlebot3(foxbot_cor3_r2) を、屋外で走行させたいのじゃ。
しかも、今度は、GNSS-RTK を使うから、インターネットにつながった環境にしないといかん。
なので、今回は、Android のスマホで、自作ロボットの Start、Stop のみを操作するだけ。
本当は、部屋の中で、LG290 で、みちびきのL6 が受信できればわざわざ屋外に持ち出す必要はないが、
L6 受信は、屋外でないと無理なきがするので、屋外での方法を考えてみただけじゃ。
また、もし L6 受信ができて、7[cm] 級の精度がでれば、GNSS-RTK も使わないのだが。
おんちゃんの住む、田舎でも、安い、政府備蓄米を買いたい!!
おんちゃんの住む、高知県土佐市(恥ずかしながら、南風(まぜ)の件で、日本中に悪評が広まった!!) でも、安い政府備蓄米を買いたいと、
近くのスーパーを見ているが一向に店先に出てこない。
売られているいるのは、4,000円以上 の米ばかり。ちょっと遠いサニーマートでは、5,000円台の米ばかり出ている。
全国平均、3,500円 などとテレビで流れているが、そんな米は、おんちゃんの住む、いなかでは見たことがない。
ならば、インターネットで買うかと思って、楽天とか色々あたったが、予約販売みたいで、結局のところ、販売中だった、アマゾンで購入した。
送料込みで、2,400円 程だった。
注文した時のメールには、改めて商品の発送予定を連絡すると書かれてあったので、
何日か待たされるのかと思ったが、
翌日には、配達予定日が書かれたメールが届いた。
8月1日に注文して、8月4日 お届けとあった。
思いのほか、早く届くみたいで、ほっとした。やれやれ。
|
新品価格 |
LM Studio と言うのが、あるそうな!!
ローカルPC 上で、LLM が気軽に試せるそうだ!!
lmstudio.ai
おんちゃんの、Ubuntu Mate 24.04 PC に入れてみようとおもったが、
Disk 容量が、50 Gigabytes 必要だそうで、うむ....
SSD の容量を増やさないと、むりか!!
Ollama というのもあるみたい。
How much hard disk size to install Ollama で、google で検索してみた。
Operating System: Linux: Ubuntu 22.04 or later
RAM: 16 GB for running models up to 7B
Disk Space: 12 GB for installing Ollama and basic models. Additional space is required for storing model data depending on the used models
Disk がだいぶ少なくてすむが、RAM が、 16GB だとさ。
7B というのが、LLMモデルの学習パラメータの大きさみたい。これが大きくなると、RAM も大きくなるみたいじゃ。
Gemma 3 なら、1B、4B 程度にすればよいのかも。
B: Bllion の事。10億 つまり学習パラメータの数みたい。1B: 10億個の学習パラメータの意味みたいじゃ。
Disk は、上記に加えて、ダウンロードする、local LLM モデルのサイズも必要みたいじゃ。
詳しくは、本家をみることじゃ。
ollama.com
Windows、Mac だと、GUI 版が出たそうじゃ。
@ollama/ollama
おんちゃんの ブログ の検索で、すべてを一覧するには!!
左ナビの、検索キーワードに、
!12345
なんでも良いが、! で否定をして、適当な文字を指定する。
おんちゃんのブログで使われていないであろ、文字列をしていする。
注) !12345
では、このページは、でてきましぇん!! 念の為。
そうすると、全ブログのページが、一覧で引っ張ってこれるぞね!!
おんちゃんも、恥ずかしながら最近知りました。コッホ!! by おんちゃん。
![]()
イタリアンレザーを使ったおしゃれな財布やバッグ、革小物、ステーショナリーがいっぱい。
日本の職人の手作業でのこだわりの上品で、シックな品々。
ぜひ一度、ご覧ください。
あなたにそっと寄り添う革製品を。sot(ソット)
(広告)
